Rsync kopiranje in sinhronizacijo datotek z oddaljenim strežnikom

Uporabnost Rsync se lahko uporablja za kopiranje in sinhronizacijo datotek in map z lokalnega Linux strežnika na oddaljeni in obratno. Rsync omogoča kopiranje podatkov med strežnike znotraj varne SSH povezave. Tudi, rsync, Podpira stiskanje podatkov med letenjem, kar izboljša delovanje sistema.

Da preprečite izgubo informacij pri pošiljanju datotek, rsync najprej prenese vse prenesene podatke v začasno datoteko. Druga pomembna lastnost rsync je, da se datoteke prenesejo v en tok, za vsako datoteko ni ustvarjen ločen tok (kar povzroča težave pri prenosu velikega števila majhnih datotek v druge pripomočke).

V tem članku bomo obravnavali primere uporabe. rsync sinhronizirati in kopirati imenike in datoteke ter navajati primere njegovih naprednih nastavitev.

Vsebina:

  • Namestitev in osnovna možnost rsync
  • Rsync: kopiranje / sinhronizacija lokalnega imenika
  • Rsync: konfigurirajte sinhronizacijo z oddaljenim strežnikom
  • Drugi primeri uporabe rsync
  • Varnostno kopiranje v Linuxu z rsync

Namestitev in osnovna možnost rsync

Namestitev rsync ne razlikuje se od namestitve, katerega koli drugega paketa. V CentOS je paket rsync prisoten v osnovnem skladišču in je nameščen prek yum (ali dnf v CentOS 8):

# yum namestite rsync -y

Sintaksa ukaza je naslednja:

# možnosti sprejemnika vira rsync

Kot vir in sprejemnik lahko v drugem strežniku določite lokalni ali oddaljeni imenik.

Možnosti:

  • -v - prikaže podrobne informacije o postopku
  • -c - preverite kontrolne vsote datotek
  • -q - minimalne informacije
  • -a - način arhiviranja
  • -R - relativne poti
  • -y - novejših datotek ne prepisujte
  • -b - varnostna kopija
  • -l - kopiraj simbole
  • -L - kopiranje vsebine povezave
  • -H - kopirajte trde povezave
  • -g - shrani skupino
  • -p - shranite dovoljenja za datoteke
  • -t - prihranite čas za spremembe
  • -x - delajte samo v tej FS
  • -e - uporabite drug transportni protokol (npr. ssh)
  • -z - stisnite datoteke pred prenosom
  • -delete - izbrisati datoteke, ki niso v izvoru
  • -izključi - izključi datoteke
  • -rekurzivno - ponavljajte nad imeniki rekurzivno
  • -brez rekurzivne - onemogoči rekurzijo
  • -napredek - prikaz poteka prenosa datotek
  • -stat - prikaži statistiko prenosa
  • -max-size - največja velikost datoteke za prenos
  • -bwlimit - omejitev hitrosti za prenos datotek
  • -različica - uporabna različica

Rsync: kopiranje / sinhronizacija lokalnega imenika

Rsync se lahko uporablja za kopiranje datotek med lokalnimi strežniškimi imeniki. Če želite kopirati datoteke iz enega imenika v drugega, zaženite ukaz:

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

V tem primeru je bila datoteka package.zip preprosto kopirana v imenik / var / www / tmp /.

Dodate lahko več možnosti kopiranja. Na primer, da pred kopiranjem predkomprimirate datoteko, prikažete podrobne informacije in napredek kopiranja datoteke, naredite:

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

Za sinhronizacijo vsebine lokalnih imenikov lahko uporabite rsync. Na primer, rsync je primeren za uporabo, ko morate kopirati datoteke iz delovnega imenika v shrambo, ki je nameščena na neki particiji. Nekaj ​​primerov ukazov:

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

Imenik / var / www / site smo kopirali v rezervno mapo, možnost -r dovoljeno rekurzivno kopiranje vseh ugnezdenih imenikov in datotek.

Če želite pri kopiranju shraniti vse atribute datotek, na primer datum spremembe in datum ustvarjanja datotek, dodajte ključ -a:

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

Če želite kopirati samo spremenjene datoteke, dodajte možnost -c:

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

Zamenjal sem samo eno datoteko in vodil ukaz. Posledično je bila v ciljni imenik kopirana samo spremenjena datoteka..

Zelo priročno je uporabljati to možnost, če se datoteke ne spreminjajo pogosto. Tako prihranite čas pri kopiranju / sinhronizaciji imenika.

Da ne bi zakrpali imenika varnostnih kopij, lahko dodate možnost -izbrisati, to bo omogočilo primerjavo datotek z virom in če je datoteka v ciljnem imeniku, če je v izvornem imeniku ni, jo samodejno izbrišite. Vendar vas pozivam, da to možnost uporabite previdno, saj če konfigurirate imenik, ki ga je treba kopirati v krono, v primeru okvare ali motenj od zunaj v delovni imenik, čemur sledi izbris delovnih datotek, boste dobili tudi informacije v varnostnih kopijah, ki vam ne bodo omogočale obnovitve podatkov . Primer:

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

Rsync: konfigurirajte sinhronizacijo z oddaljenim strežnikom

Najpogosteje kopiranje / sinhronizacijo rsync z oddaljenim strežnikom se uporablja za varnostno kopiranje ali sinhronizacijo konfiguracije vozlišča grozda. Podatke lahko samodejno sinhronizirate s proizvodnega strežnika v varnostno kopijo in v primeru težav na produktivnem severu hitro prenesete vse v varnostno kopijo. To je dokaj priročna in enostavna možnost nastavitve..

V sodobnih različicah rsync se protokol SSH uporablja za prenos datotek privzeto. Vendar pa lahko uporabite tudi rsyncd demon. Če želite to narediti, mora biti odjemalec rsync nameščen na oddaljenem računalniku, njegov zagon pa je dodan zagonu:

# Systemctl omogoči rsyncd

Konfiguracijska datoteka rsync je /etc/rsyncd.conf. V tej datoteki lahko konfigurirate nastavitve in nastavitve rsync za sinhronizacijo za različne vire.

Za sinhronizacijo prek demona rsync je naslov oddaljenega strežnika določen kot rsync: //. Na primer:

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

Za kopiranje datoteke na oddaljeni strežnik uporabite ukaz:

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

Kjer je IP naslov oddaljenega strežnika. Po zagonu ukaza bo oddaljeni strežnik vprašal uporabniško geslo (če je avtentikacija gesla omogočena). Za samodejno odobritev morate konfigurirati SSH ključe.

Kopirajte imenik z lokalnega strežnika na oddaljeni:

# rsync -zvra / var / www / spletna stran @ IP: / backup /

Se pravi, vse je enako kot z lokalnimi imeniki, le določimo naslov oddaljenega strežnika.

Datoteke lahko sinhronizirate tudi z oddaljenega strežnika v lokalni, ukaz za to se bo malo spremenil:

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

Da bi prisilili uporabo protokola SSH za kopiranje datotek, to določite v svojem ukazu (možnost -e se uporablja za izbiro transportnega protokola za kopiranje datotek):

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

Če ima oddaljeni strežnik SSH druga vrata kot standardna, jih lahko določite tudi:

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

Drugi primeri uporabe rsync

Če v okviru seje sinhronizacije prenašate veliko informacij in je pomembno omejiti hitrost prenosa, to nastavite z dodatno možnostjo -bwlimit (navedite hitrost v KB / s):

# rsync -zvra --bwlimit = 100 / var / www / spletna stran @ IP: / backup /

Pri prenosu datotek na oddaljeni strežnik lahko omejite največjo velikost datotek, ki jih želite kopirati. Na primer, želite kopirati vse datoteke, razen datotek, večjih od 1 MB:

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

Če potrebujete enosmerno sinhronizacijo na strežniku in po prenosu datotek na oddaljeni strežnik morate datoteke izbrisati iz izvornega strežnika, uporabite možnost --remove-source-files:

# rsync -zvra --remove-source-files --progress /var/www/site/package.zip root @ IP: / backup /

Po izvedbi ukaza je bila datoteka kopirana na oddaljeni strežnik in izbrisana iz vira:

Tudi zelo priročne možnosti -vključujejo in -izključi, s temi možnostmi lahko naredite izjeme za kopiranje imenikov ali datotek:

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

V tem primeru smo pri kopiranju na oddaljeni strežnik izključili imenik "administrator".

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

Z dodajanjem možnosti -vključujejo filtra smo lahko nastavili po datotekah, kopirali smo samo datoteke s pripono php.

Varnostno kopiranje v Linuxu z rsync

V svojem sužnju uporabljam del rsync za naloge samodejnega varnostnega kopiranja v Linuxu. Lahko napišete preproste skripte bash ali preprosto dodate ukaz rsync, da se krenirate in izvedete po načrtih.

Na primer, lahko dodate ukaz v cron:

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

Posledično se bodo vsak dan ob 1–30 noči sinhronizirali imeniki lokalnih in oddaljenih strežnikov.

Za izvedbo ukaza je vredno to razmisliti rsync na oddaljenem strežniku prek cron-a je priporočljivo konfigurirati pristnost strežnika s tipko SSH. Primere skriptov za varnostno kopiranje, ki smo jih dali v članku "Skripti za varnostne kopije datotek iz Linuxa v oblak", rsync se tam uporablja za kopiranje datotek v povezane oblake za shranjevanje.