Comanda rsync (disponibila pe serverele sau calculatoarele care ruleaza Linux sau UNIX) vine de la remote sync care s-ar putea traduce prin “sincronizare la distanta“.
rsync este folosit pentru a sincroniza fisierele si directoarele de la o locatie cu cele din alta locatie, intr-un mod eficient. Locatia unde se va afla backp-ul poate fi atat pe serverul local cat si pe un server dedicat remote (la distanta).
Cateva caracteristici ale rsync:
viteza – rsync reproduce intregul continut intre sursa si destinatie cand este executata pentru prima data. Ulterior, rsync va transfera doar blocurile modificate sau octetii catre destinatie; din acest motiv transerul este foarte rapid
securitate – rsync permite criptarea de date folosind protocolul SSH in timpul transferului
latime de banda – rsync utilizeaza, pentru transfer, compresia si decompresia datelelor “block by block” lucru ce duce la un consum de banda foarte mic in comparatie cu alte metode de transfer
privilegii – rsync nu necesita privilegii speciale pentru a fi instalat sau utilizat
Cum se utilizeaza rsync?
# rsync options source destination (sursa sau destinatia pot fi atat locale cat si remote)
Exemplul 1: sincronizarea a doua directoare aflate pe un server local
# rsync -zvr /root/dir1/ /root/dir2/
building file list … done
svA.xml
svB.xml
.
sent 12345 bytes received 4291 bytes 31966.00 bytes/sec
total size is 23497 speedup is 1.63
#
In exemplul de mai sus au fost utilizate optiunile: -z pentru compresie, -v verbose, -R recursivitate
Exemplul 2: sincronizarea unui singur fisier
# rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys
sent 42 bytes received 12380 bytes 3549.14 bytes/sec
total size is 12288 speedup is 0.99
Exemplul 3: sincronizarea fisierelor de pe o locatie la distanta
# rsync -avz /root/temp/ utilizator@192.168.200.10:/home/utilizator/temp/
Password:
building file list … done
./
rpm/
rpm/Basenames
rpm/Conflictname
sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
total size is 45305958 speedup is 2.87
Pentru a putea face sincronizarea remote, este necesar sa specificati adresa ip a serverului si utilizatorul, destinatia unde vor fi copiate datele in formatul: utilizator@ip_server:/destinatie. Odata lansata comanda, trebuie sa introduceti si parola contului utilizator.
Exemplul 4: sincronizarea fisierelor aflate remote catre o destinatie locala
# rsync -avz utilizator@192.168.200.10:/var/lib/rpm /root/temp
Password:
receiving file list … done
rpm/
rpm/Basenames
.
sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec
total size is 45305958 speedup is 2.87
Exemplul 5: sincronizarea doar a structurii de directoare, dar nu si a fisierelor aflate in acestea (se executa rsync folosind -d)
# rsync -v -d utlizator@192.168.200.10:/var/lib/ .
Password:
receiving file list … done
logrotate.status
CAM/
YaST2/
acpi/
sent 240 bytes received 1830 bytes 318.46 bytes/sec
total size is 956 speedup is 0.46
Exemplul 6: vizualizarea detaliilor de transfer (progres, dimensiune) in timpul sincronizarii (utila in cazul backp-urilor)
# rsync -avz –progress utilizator@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list …
19 files to consider
./
Basenames
5357568 100% 14.98MB/s 0:00:00 (xfer#1, to-check=17/19)
Conflictname
12288 100% 35.09kB/s 0:00:00 (xfer#2, to-check=16/19)
.
.
.
sent 406 bytes received 15810211 bytes 2108082.27 bytes/sec
total size is 45305958 speedup is 2.87