Linux Backup – 10 primera rsync komande

rsync je skraćenica od remote sync. rsync se koristi kao backup operacija u Linux/Unix sistemima. rsync se koristi za sinhronizaciju datoteka i direktorijuma sa jedne lokacije na drugu. Backup lokacija može da se nalazi i na lokalnom i na udaljenom serveru.

Važne osobine rsync-a:

  • Brzina – Kada se prvi put pokrene, rsync replicira kompletan sadržaj između izvorne i ciljne lokacije. Sledeći put, rsync prenosi samo izmenjene blokobe ili bajtove na odredište, što čini transfer podataka veoma brzim.
  • Sigurnost – rsync dozvoljava enkripciju podataka koristeći ssh protokol prilikom prenosa podataka
  • Manji bandwidth – rsync koristi kompresiju i dekompresiju podataka blok po blok na oba kraja (source i destination), tako da će bandwidth prilikom korišćenja rsync-a biti manji u poredjenju sa drugim protokolima transfera podataka
  • Privilegije – za pokretanje rsync-a nisu potrebne nikakve specijalne privilegije.

Sintaksa

$ rsync options source destination

Source i destination mogu da budu i na lokalnom i na udaljenom računaru. U slučaju da je udaljeni, treba uneti login podatke, ime udaljenog računara (ili IP adresa) i lokaciju.

Primer 1. Sinhronizacija dva direktorijuma na lokalnom serveru

Za sinhronizaciju dva direktorijuma na lokalnom serveru koristi se sledeća komanda: rsync -zvr

$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
sva.xml
svB.xml
.
sent 26385 bytes  received 1098 bytes  54966.00 bytes/sec
total size is 44867  speedup is 1.63
$

U gornjem primeru: -z omogućuje kompresiju, -v verbose, -r je recursive. U ovom slučaju rsync nije sačuvao timestamp prilikom sinhronizacije.

Primer 2. Sačuvati timestamps prilikom sinhronizacije koristeći rsync -a

Opcija -a pokreće archive mode. Opcija -a radi sledeće:

  • Rekurzivni mod
  • Sačuva simboličke linkove
  • Sačuva permisije
  • Sačuva timestamp
  • Sačuva vlasnika i grupu

Komanda je istao kao u prvom primeru, sa dodatkom -a opcije:

$ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list ... done
./
sva.xml
svB.xml
.
sent 26499 bytes  received 1104 bytes  55206.00 bytes/sec
total size is 44867  speedup is 1.63
$

Primer 3. Sinhronizacija samo jedne datoteke

rsync dozvoljava i samo jednog fajla što je pokazano u primeru ispod:

$ 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

Primer 4. Sinhronizacija datoteka sa lokalnog na udaljeni server

rsync omogućuje sinhronizaciju datoteka i direktorijuma između lokalnog i udaljenog sistema.

$ rsync -avz /root/temp/ [email protected]:/home/bojan/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

Prilikom sinhronizacije sa udaljenim računarom, potrebno je da se unese korisničko ime i IP adresu za udaljeni računar. Takođe je potrebno uneti i putanju na udaljenom računaru. Format je [email protected]:putanja.

Primer 5. Sinhronizacija sa udaljenog računara na lokalni

Kada se radi sinhronizacija sa udaljenog na lokalni računar u source se upisuje udaljena putanja, a lokalna putanja kao destinacija.

$ rsync -avz [email protected]:/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

Primer 6. Remote shell za sinhronizaciju

rsync dozvoljava da se definiše remote shell prilikom sinhronizacije. Može se koristiti rsync ssh da bi se omogućila sigurna konekcija. Koristi se rsync -e ssh da se definiše koji remote sheell da se koristi. U ovoj slučaju rsync će koristiti ssh.

$ rsync -avz -e ssh [email protected]:/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

Primer 7. Ne menjati izmenjene datoteke na destination lokaciji

Ponekad se datoteke na ciljnoj lokaciji menjaju i imamo potrebu da se sinhronizuje direktorijum, ali da izmenjene datoteke ostanu nesinhronizovane (da stara verzija ne prepiše novu, izmenjenu verziju). rsync -u se koristi za ovakve situacije.

$ ls -l /root/temp/Basenames
total 39088
-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames

$ rsync -avzu [email protected]:/var/lib/rpm /root/temp
Password:
receiving file list ... done
rpm/

sent 122 bytes  received 505 bytes  114.00 bytes/sec
total size is 45305958  speedup is 72258.31

$ ls -lrt
total 39088
-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames

Primer 8. Sinhronizacije samo strukture direktorijuma ali ne i datoteke

Koristeći opciju rsync -d sinhronizuje se samo struktura, dok datoteke ostaju nepromenjene.

$ rsync -v -d [email protected]:/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

Primer 9. Prikazivanje progresa prilikom transfera

Kada se rsync koristi za backup nije loše da bude prikazan progres backup-a, npr. koliko datoteka se kopira, kojom brzinom se kopira… rsync –progress opcija prikazuje detaljan progres rsync-a.

$ rsync -avz --progress [email protected]:/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

Za backup linux server se može koristiti i rsnapshot alat koji koristi rsync.

Primer 10. Obrisati datoteke kreirane na target lokaciji

Ukoliko datoteka ne postoji na source lokaciji, ali postoje na target lokaciji, može se javiti potreba da se te datoteke obrišu prilikom sinhronizacije. U tom slučaju se koristi –delete opcija.

# Source and target are in sync. Now creating new file at the target.
$ > new-file.txt

$ rsync -avz --delete [email protected]:/var/lib/rpm/ .
Password:
receiving file list ... done
deleting new-file.txt
./

sent 26 bytes  received 390 bytes  48.94 bytes/sec
total size is 45305958  speedup is 108908.55

 

About the Author

Leave a Reply

Your email address will not be published. Required fields are marked *