Rsync kopirati i sinkronizirati datoteke s udaljenim poslužiteljem

korisnost rsync mogu se koristiti za kopiranje i sinkronizaciju datoteka i mapa s lokalnog Linux poslužitelja na udaljeni i obrnuto. Rsync omogućava kopiranje podataka s poslužitelja unutar sigurne SSH veze. na isti način, rsync, Podržava kompresiju podataka u pokretu, što poboljšava performanse sustava.

Da biste spriječili gubitak podataka prilikom slanja datoteka, rsync prvo kopira sve prenesene podatke u privremenu datoteku. Druga važna značajka rsync-a je da se datoteke prenose u jedan tok, za svaku datoteku ne stvara se zasebni tok (što uzrokuje problem prilikom prijenosa velikog broja malih datoteka u druge alate).

U ovom ćemo članku razmotriti slučajeve uporabe. rsync za sinkronizaciju i kopiranje direktorija i datoteka te davanje primjera njegovih naprednih postavki.

sadržaj:

  • Instalacija i osnovna opcija rsync
  • Rsync: kopiranje / sinkronizacija lokalnog direktorija
  • Rsync: konfiguriranje sinkronizacije s udaljenim poslužiteljem
  • Ostali primjeri upotrebe rsync-a
  • Izrada sigurnosne kopije na Linuxu s rsync-om

Instalacija i osnovna opcija rsync

instalacija rsync ne razlikuje se od instalacije, bilo kojeg drugog paketa. Na CentOS-u je rsync paket prisutan u osnovnom spremištu i instaliran je putem yum (ili dnf na CentOS 8):

# yum instalirajte rsync -y

Sintaksa naredbe je sljedeća:

Opcije primatelja izvora rsync

Kao izvor i primatelj možete odrediti lokalni ili udaljeni direktorij na drugom poslužitelju.

opcije:

  • -v - prikaz detaljnih podataka o procesu
  • -c - provjerite datoteke za provjeru
  • -q - minimalna informacija
  • -a - način arhiviranja
  • -R - relativni putovi
  • -y - ne prepisujte novije datoteke
  • -b - sigurnosna kopija
  • -l - kopiraj simbole
  • -L - kopiranje sadržaja veze
  • -H - kopirajte tvrde poveznice
  • -g - spremanje grupe
  • -p - spremanje dozvola za datoteke
  • -t - uštedjeti vrijeme izmjene
  • -x - radite samo u ovom FS
  • -e - koristiti drukčiji protokol prijevoza (npr. ssh)
  • -z - komprimirajte datoteke prije prijenosa
  • -delete - izbrisati datoteke koje nisu u izvoru
  • -izuzeti - isključiti datoteke
  • -rekurzivno - ponavljanje nad direktorijima rekurzivno
  • -ne-rekurzivno - onemogući rekurziju
  • -napredak - prikaz tijeka prijenosa datoteka
  • -stat - prikaži statistiku prijenosa
  • -max-size - maksimalna veličina datoteke za prijenos
  • -bwlimit - ograničenje brzine za prijenos datoteka
  • -verzija - uslužna verzija

Rsync: kopiranje / sinkronizacija lokalnog direktorija

rsync mogu se koristiti za kopiranje datoteka između lokalnih direktorija poslužitelja. Ako trebate kopirati datoteke iz jedne mape u drugu, pokrenite naredbu:

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

U ovom slučaju datoteka package.zip jednostavno je kopirana u / var / www / tmp / direktoriju.

Možete dodati nekoliko opcija kopiranja. Na primjer, kako biste prethodno kopirali datoteku prije kopiranja, prikazali detaljne informacije i napredak kopiranja datoteke, učinite:

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

Možete koristiti rsync za sinkronizaciju sadržaja lokalnih direktorija. Na primjer, rsync je zgodan za upotrebu kada trebate kopirati datoteke iz radne mape u spremište koje je montirano na nekoj particiji. Nekoliko primjera naredbi:

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

Kopirali smo / var / www / site direktorij u rezervnu mapu, opciju -r Dopušteno je rekurzivno kopirati sve ugniježđene mape i datoteke.

Da biste spremili sve atribute datoteka prilikom kopiranja, primjerice, datum izmjene i datum izrade datoteka, dodajte ključ -:

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

Ako želite kopirati samo modificirane datoteke, dodajte opciju -c:

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

Promijenio sam samo jednu datoteku i pokrenuo naredbu. Kao rezultat toga, samo je promijenjena datoteka kopirana u odredišni direktorij..

Vrlo je prikladno koristiti ovu opciju ako se datoteke često ne mijenjaju. Tako štedite vrijeme na kopiranju / sinkronizaciji direktorija.

Da ne biste pretrpali direktorij sigurnosnih kopija, možete dodati opciju -izbrisati, ovo će vam omogućiti da usporedite datoteke s izvorom, a ako je datoteka u ciljnom direktoriju i ako je nema u izvornoj mapi, automatski je obrišite. Ali pozivam vas da koristite ovu opciju s oprezom, jer ako konfigurirate direktorij koji će se kopirati u krunicu, u slučaju kvara ili smetnji izvana u radnu mapu, nakon čega slijedi brisanje radnih datoteka, dobit ćete i podatke u sigurnosnim kopijama koje vam neće omogućiti obnavljanje podataka , Primjer:

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

Rsync: konfiguriranje sinkronizacije s udaljenim poslužiteljem

Najčešće kopiranje / sinkronizaciju rsync s udaljenim poslužiteljem koristi se za sigurnosno kopiranje ili sinkronizaciju konfiguracije čvora klastera. Možete automatski sinkronizirati podatke s proizvodnog poslužitelja na sigurnosnu kopiju i, u slučaju problema na produktivnom sjeveru, brzo sve prebacite na sigurnosnu kopiju. Ovo je prilično zgodna i jednostavna opcija za konfiguriranje..

U modernim verzijama rsync-a, SSH protokol koristi se za zadani prijenos datoteka. Međutim, možete koristiti i rsyncd demon. Da biste to učinili, rsync klijent mora biti instaliran na udaljeno računalo, a njegov demon se dodaje pokretanju:

# Systemctl omogući rsyncd

Konfiguracijska datoteka rsync je /etc/rsyncd.conf. U ovoj datoteci možete konfigurirati postavke rsync i postavke za sinkronizaciju za različite resurse.

Za sinkronizaciju putem demona rsync adresa udaljenog poslužitelja je navedena kao rsync: //. Na primjer:

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

Za kopiranje datoteke na udaljeni poslužitelj, koristite naredbu:

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

Gdje je IP adresa udaljenog poslužitelja. Nakon izvršavanja naredbe, udaljeni poslužitelj će zatražiti korisničku lozinku (ako je omogućena provjera autentičnosti lozinke). Za automatsku autorizaciju, morate konfigurirati SSH ključeve.

Kopirajte direktorij s lokalnog poslužitelja na daljinski:

# rsync -zvra / var / www / site root @ IP: / sigurnosna kopija /

To jest, sve je isto kao i kod lokalnih direktorija, samo mi određujemo adresu udaljenog poslužitelja.

Možete i sinkronizirati datoteke s udaljenog poslužitelja na lokalni, naredba za to će se malo promijeniti:

# rsync -zvra root @ IP: / sigurnosna kopija / / sigurnosna kopija

Da biste prisilili korištenje SSH protokola za kopiranje datoteka, to navedite u svojoj naredbi (opcija -e se koristi za odabir transportnog protokola za kopiranje datoteka):

# rsync -zvrae ssh root @ IP: / sigurnosna kopija / / sigurnosna kopija

Ako udaljeni SSH poslužitelj ima neko drugo vrata od standardnog, možete ga također odrediti:

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

Ostali primjeri upotrebe rsync-a

Ako u okviru sesije sinkronizacije prenosite puno podataka i važno je ograničiti brzinu prijenosa, postavite to dodatnom opcijom -bwlimit (navedite brzinu u KB / s):

# rsync -zvra --bwlimit = 100 / var / www / web root @ IP: / backup /

Prilikom prijenosa datoteka na udaljeni poslužitelj, možete ograničiti maksimalnu veličinu datoteka koje se kopiraju. Na primjer, želite kopirati sve datoteke osim datoteka većih od 1 MB:

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

Ako vam je potrebna jednosmjerna sinkronizacija na vašem poslužitelju i nakon prijenosa datoteka na udaljeni poslužitelj morate izbrisati datoteke s izvornog poslužitelja, koristite opciju --remove-source-datoteka:

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

Nakon izvršenja naredbe datoteka je kopirana na udaljeni poslužitelj i izbrisana iz izvora:

Također vrlo povoljne opcije -uključiti i -isključiti, Pomoću ovih opcija možete napraviti iznimke za kopiranje direktorija ili datoteka:

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

U ovom slučaju smo isključili direktorij "administrator" prilikom kopiranja na udaljeni poslužitelj.

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

Dodavanjem opcije -uključiti uspjeli smo postaviti filtar po datotekama, kopirali smo samo datoteke s php ekstenzijom.

Izrada sigurnosne kopije na Linuxu s rsync-om

U svom robovu koristim dio rsync za automatske sigurnosne kopije u Linuxu. Možete napisati jednostavne bash skripte ili samo dodati naredbu rsync da se izvrši i izvrši prema rasporedu.

Na primjer, možete dodati naredbu u cron:

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

Kao rezultat toga, svaki dan u 1-30 noći sinkronizirat će se direktoriji lokalnog i udaljenog poslužitelja.

To vrijedi uzeti u obzir da biste izvršili naredbu rsync na udaljenom poslužitelju putem cron-a, preporučljivo je konfigurirati provjeru autentičnosti poslužitelja pomoću SSH ključa. Primjere skripti za izradu sigurnosnih kopija, dali smo u članku "Skripte za sigurnosne kopije datoteka s Linuxa u oblak", rsync se tamo koristi za kopiranje datoteka u povezane oblake.