Server Dedicat Linux: comanda rsync

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