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.