Rsync kopírujte a synchronizujte súbory so vzdialeným serverom

užitočnosť rsync je možné použiť na kopírovanie a synchronizáciu súborov a priečinkov z lokálneho servera Linux na vzdialený server a naopak. Rsync vám umožňuje kopírovať údaje medzi servermi v rámci zabezpečeného pripojenia SSH. rovnakým spôsobom, rsync, Podporuje kompresiu údajov za chodu, čo zvyšuje výkon systému.

Zabránenie strate informácií pri odosielaní súborov, rsync najprv skopíruje všetky prenesené informácie do dočasného súboru. Ďalšou dôležitou vlastnosťou rsync je, že súbory sa prenášajú do jedného toku, pre každý súbor sa nevytvára samostatný tok (čo spôsobuje problém pri prenose veľkého počtu malých súborov do iných pomocných programov)..

V tomto článku sa budeme zaoberať prípadmi použitia. rsync synchronizovať a kopírovať adresáre a súbory a uviesť príklady ich pokročilých nastavení.

obsah:

  • Inštalácia a základná možnosť rsync
  • Rsync: kopírovanie / synchronizácia miestneho adresára
  • Rsync: nakonfigurujte synchronizáciu so vzdialeným serverom
  • Ďalšie príklady použitia rsync
  • Zálohujte na Linuxe pomocou rsync

Inštalácia a základná možnosť rsync

inštalácia rsync sa nelíši od inštalácie, akékoľvek iné balenie. V systéme CentOS je balík rsync prítomný v základnom úložisku a inštaluje sa prostredníctvom yum (alebo dnf v systéme CentOS 8):

# yum nainštalujte rsync -y

Syntax príkazu je nasledovná:

# rsync možnosti prijímača zdroja

Ako zdroj a prijímač môžete zadať lokálny alebo vzdialený adresár na inom serveri.

možnosti:

  • -v - zobrazenie podrobných informácií o procese
  • -c - skontrolovať kontrolné súčty súborov
  • -q - minimálne informácie
  • -a - režim archivácie
  • -R - relatívne cesty
  • -y - novšie súbory neprepíšete
  • -b - zálohovanie
  • -l - kopírovanie symbolov
  • -L - skopírujte obsah odkazu
  • -H - kopírovanie pevných odkazov
  • -g - uložiť skupinu
  • -p - ukladá povolenia pre súbory
  • -t - uložte čas zmeny
  • -x - pracovať iba v tomto FS
  • -e - použite iný transportný protokol (napr. ssh)
  • -z - pred prenosom komprimujte súbory
  • -odstrániť - odstránenie súborov, ktoré nie sú v zdroji
  • -vylúčiť - vylúčiť súbory
  • -rekurzívne - opakované opakovanie adresárov
  • -no-rekurzívny - zakážte rekurziu
  • -progress - zobrazí priebeh prenosu súborov
  • -štatistika prenosu štatistík
  • -max-size - maximálna veľkosť súboru na prenos
  • -bwlimit - rýchlostný limit pre prenos súborov
  • -verzia - užitočná verzia

Rsync: kopírovanie / synchronizácia miestneho adresára

rsync je možné použiť na kopírovanie súborov medzi adresármi miestneho servera. Ak potrebujete kopírovať súbory z jedného adresára do druhého, spustite príkaz:

# rsync /var/www/html/package.zip / var / www / tmp /

V tomto prípade bol súbor package.zip jednoducho skopírovaný do adresára / var / www / tmp /.

Môžete pridať niekoľko možností kopírovania. Napríklad, ak chcete predkomprimovať súbor pred kopírovaním, zobraziť podrobné informácie a postup kopírovania súborov, postupujte takto:

# rsync -vz - priebeh /var/www/html/package.zip / var / www / tmp /

Na synchronizáciu obsahu miestnych adresárov môžete použiť rsync. Napríklad rsync je vhodné použiť, keď potrebujete kopírovať súbory z pracovného adresára do úložiska pripojeného k nejakému oddielu. Niekoľko príkladov príkazov:

# rsync -zvr / var / www / site / backup /

Adresár / var / www / site sme skopírovali do záložného adresára -r povolené rekurzívne kopírovať všetky vnorené adresáre a súbory.

Ak chcete uložiť všetky atribúty súborov pri kopírovaní, napríklad dátum zmeny a dátum vytvorenia súborov, pridajte kľúč -:

# rsync -zvra / var / www / site / backup /

Ak chcete kopírovať iba upravené súbory, pridajte možnosť -C:

# rsync -zvrac / var / www / site / backup /

Zmenil som iba jeden súbor a spustil príkaz. V dôsledku toho bol do cieľového adresára skopírovaný iba upravený súbor..

Túto možnosť je veľmi vhodné použiť, ak sa súbory často nemenia. Takto ušetríte čas na kopírovanie / synchronizáciu adresára.

Aby ste nepreplnili záložný adresár, môžete pridať voľbu -vymazať, to vám umožní porovnávať súbory so zdrojom a ak je súbor v cieľovom adresári a jeho neprítomnosť v zdrojovom adresári, odstráňte ho automaticky. Vyzývam vás však, aby ste túto možnosť používali opatrne, pretože ak nakonfigurujete adresár, ktorý sa má skopírovať do koruny, v prípade zlyhania alebo rušenia zvonka do pracovného adresára a následného vymazania pracovných súborov, získate tiež informácie v zálohách, ktoré vám neumožnia obnoviť vaše údaje. , Príklad:

# rsync -zvrac --delete / var / www / site / backup /

Rsync: nakonfigurujte synchronizáciu so vzdialeným serverom

Najčastejšie kopírovanie / synchronizácia rsync so vzdialeným serverom sa používa na zálohovanie alebo synchronizáciu konfigurácie uzlov klastra. Môžete automaticky synchronizovať údaje z produkčného servera so záložným serverom av prípade problémov na produktívnom severe rýchlo preniesť všetko na záložný server. Toto je pomerne pohodlná a ľahko konfigurovateľná možnosť..

V moderných verziách rsync sa protokol SSH používa na prenos súborov v predvolenom nastavení. Môžete však použiť aj démona rsyncd. Ak to chcete urobiť, klient rsync musí byť nainštalovaný na vzdialenom počítači a jeho démon sa pridá k spusteniu:

# Systemctl povoliť rsyncd

Konfiguračný súbor rsync je /etc/rsyncd.conf. V tomto súbore môžete nakonfigurovať nastavenia rsync a nastavenia pre synchronizáciu pre rôzne prostriedky.

Na synchronizáciu prostredníctvom démona rsync je adresa vzdialeného servera zadaná ako rsync: //. Napríklad:

# rsync -av /var/www/site/package.zip rsync: //192.168.1.32/backup

Ak chcete skopírovať súbor na vzdialený server, použite príkaz:

# rsync -az /var/www/site/package.zip root @ IP: / backup /

Kde IP je adresa vzdialeného servera. Po spustení príkazu si vzdialený server vyžiada heslo používateľa (ak je povolená autentifikácia pomocou hesla). Na automatickú autorizáciu musíte nakonfigurovať kľúče SSH.

Skopírujte adresár z lokálneho servera na vzdialené:

# rsync -zvra / var / www / root @ IP: / backup /

To znamená, že všetko je rovnaké ako v miestnych adresároch, iba zadáme adresu vzdialeného servera.

Môžete tiež synchronizovať súbory zo vzdialeného servera na lokálny, príkaz pre tento sa trochu zmení:

# rsync -zvra root @ IP: / backup / / backup

Ak chcete vynútiť použitie protokolu SSH na kopírovanie súborov, zadajte to vo svojom príkaze (voľba -e sa používa na výber prenosového protokolu na kopírovanie súborov):

# rsync -zvrae ssh root @ IP: / backup / / backup

Ak má vzdialený server SSH iný port ako štandardný, môžete ho tiež špecifikovať:

# rsync -zvrae "ssh -p 2222" root @ IP: / backup / / backup

Ďalšie príklady použitia rsync

Ak prenášate veľa informácií v rámci synchronizačnej relácie a je dôležité obmedziť prenosovú rýchlosť, nastavte túto voľbu pomocou ďalšej voľby -bwlimit (uveďte rýchlosť v KB / s):

# rsync -zvra - bwlimit = 100 / var / www / root stránky @ IP: / backup /

Pri prenose súborov na vzdialený server môžete obmedziť maximálnu veľkosť súborov, ktoré sa majú kopírovať. Napríklad chcete kopírovať všetky súbory okrem súborov väčších ako 1 MB:

# rsync -zvra --max-size = '1m' / var / www / root stránky @ IP: / backup /

Ak potrebujete na svojom serveri jednosmernú synchronizáciu a po prenose súborov na vzdialený server musíte odstrániť súbory zo zdrojového servera, použite voľbu --odobrať-source-súbory:

# rsync -zvra --odstrániť zdrojové súbory - priebeh /var/www/site/package.zip root @ IP: / backup /

Po vykonaní príkazu bol súbor skopírovaný na vzdialený server a odstránený zo zdroja:

Tiež veľmi pohodlné možnosti -zahrnúť a -vylúčiť, pomocou týchto možností môžete urobiť výnimky pre kopírovanie adresárov alebo súborov:

# rsync -zvra - exclude = administrator / / var / www / root root @ IP: / backup /

V tomto prípade sme pri kopírovaní na vzdialený server vylúčili adresár „administrator“.

# rsync -zvra --include = '*. php' --exclude = '*' / var / www / site / administrator / root @ IP: / backup /

Pridaním možnosti -zahrnúť sme mohli nastaviť filter podľa súborov, skopírovali sme iba súbory s príponou php.

Zálohujte na Linuxe pomocou rsync

V mojom otrokovi používam časť rsync pre úlohy automatického zálohovania v systéme Linux. Môžete písať jednoduché bash skripty alebo jednoducho pridať príkaz rsync do cron a vykonávať podľa plánu.

Napríklad môžete pridať príkaz do cron:

01 30 * * * rsync -zvra root @ IP: / backup / / backup

Vo výsledku sa každý deň o 1-30 nocí synchronizujú adresáre miestnych a vzdialených serverov.

Je potrebné zvážiť vykonanie tohto príkazu rsync na vzdialenom serveri pomocou cronu sa odporúča nakonfigurovať autentifikáciu servera pomocou kľúča SSH. Príklady skriptov na zálohovanie, ktoré sme uviedli v článku „Skripty na zálohovanie súborov z Linuxu do cloudu“, tam sa používa rsync na kopírovanie súborov do pripojených cloudových úložísk..