Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

Več o Rsync

Rsync je hitro in vsestransko orodje za kopiranje datotek in map. Orodje lahko kopira podatke lokalno in v druge gostitelje, vključno s shrambo v oblaku podjetja Introserv.
Možnosti orodja omogočajo nadzor številnih vidikov kopiranja in zrcaljenja podatkov.
Ena glavnih funkcij je možnost stiskanja podatkov med pošiljanjem, kar omogoča pospešitev postopka kopiranja med strežniki.
Druga prednost je izjema pri kopiranju enakih datotek. Zato se bodo kopirale ali prenašale samo različne datoteke, kar bo nedvomno prihranilo čas pri sinhronizaciji velikih imenikov.

Možnosti orodja

Oglejmo si primere uporabe programa Rsync za kopiranje datotek in imenikov na oddaljene shramba v oblaku iz podjetja Introserv z uporabo protokola SSH. Pomembno! S podobnimi ukazi, pri katerih določite le ciljni strežnik, boste lahko prek SSH kopirali imenike in datoteke v kateri koli oddaljeni strežnik.

Oglejmo si nekaj glavnih uporabniških možnosti, ki jih boste najpogosteje uporabljali. Podrobnejši seznam razpoložljivih možnosti je na voljo v dokumentaciji man(man rsync command):

-v - prikaže podrobne informacije o procesu
-c - preveri kontrolne vsote datotek
-q - minimalne informacije
-a - način arhiviranja
-R - relativne poti
-y - ne prepisuj novejših datotek
-b - ustvari varnostno kopijo
-l - kopiraj simelne povezave
-L - kopiraj vsebino povezav
-H - kopiraj trde povezave
-g - shrani skupino
-p - shrani dovoljenja datotek
-t - shrani čas spremembe
-x - deluje samo v tem FS
-e - uporabi drug transportni protokol (npr, ssh)
-z - stisne datoteke pred prenosom
--delete - izbriše datoteke, ki niso v viru
--exclude - izključi datoteke
--recursive - rekurzivno našteje imenike
--no-recursive - onemogoči rekurzivnost
--progress - prikaže potek prenosa datotek
--stat - prikaže statistiko prenosa
--max-size - največja velikost datoteke za prenos
--bwlimit - omejitev hitrosti prenosa datotek

Kratka razlaga sintakse

rsync -az --progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/

-az --progress možnosti, ki označujejo, da je treba preneseno datoteko arhivirati, jo pred prenosom stisniti in na zaslonu prikazati tudi potek kopiranja;

/home/user/test.file to je pot do datoteke in sama datoteka, ki jo je treba prenesti;

boxxxx@boxxxxx.introserv.cloud: to je ciljni vir (v našem primeru je to shramba v oblaku, lahko pa je tudi oddaljeni strežnik) boxxxx je uporabniško ime, za znakom @ je ime vira ali naslov IP oddaljenega strežnika;

/remote_folder/: to je mapa na oddaljenem viru. V našem primeru - v storitvi Introserv Cloud Storage.

Kopiranje ene datoteke v mapo v oddaljenem skladišču

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Pozvan bo poziv za geslo za povezavo s shrambo:

Vnesite geslo in nadaljujte, videli boste napredek in hitrost prenosa datoteke:

Kopiranje mape v mapo v oddaljeni shrambi

Bodite pozorni na poševnice v vrsticah izvorne in ciljne mape. Odsotnost poševnice v izvorni mapi pomeni, da želimo rekurzivno prenesti lokalno mapo namizja z vso njeno vsebino v mapo oddaljene_predal

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Videli boste, da se prenesejo imenik in vse datoteke v njem:

Kopiranje vsebine lokalne mape v mapo na oddaljeni pomnilnik

Bodite pozorni na poševnico na koncu izvorne mape. Njena prisotnost pomeni, da mora orodje kopirati vsebino lokalne mape v mapo na oddaljeni shrambi.

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Videli boste napredek in hitrost kopiranja:

Kopiranje mape iz oddaljene shrambe v mapo lokalnega strežnika

S programom Rsync lahko sprožite kopiranje mape iz oddaljene shrambe. Ukaz je videti takole:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Videli boste napredek in hitrost kopiranja oddaljene mape v mapo v lokalnem strežniku:

Kopiranje vsebine mape iz oddaljene shrambe v mapo lokalnega strežnika

Pri tem velja biti pozoren tudi na poševnico na koncu poti do izvorne mape. Njena prisotnost pomeni, da je treba kopirati samo vsebino mape

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/

Kopiranje vsebine mape brez in/ali vključno z datotekami

Pripomoček omogoča, da izrecno določite, katere datoteke naj se prenesejo in katere naj se izključijo. Za to uporabite možnosti --include in --exclude.

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Videli boste, da se prenese samo ena datoteka, ki je določena z možnostjo --include. Upoštevajte, da lahko možnosti include in exclude uporabljate ločeno.

Kopirajte samo datoteke, ki se razlikujejo od datotek v ciljni mapi

Če želite preklicati kopiranje enakih datotek, uporabite možnost -c, da preverite kontrolne vsote datotek. To vam bo omogočilo, da iz postopka kopiranja izključite tiste datoteke, ki so že v ciljni mapi

rsync -azrс --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Videli boste, da so bile v oddaljeno mapo kopirane le 3 datoteke, razen datoteke test.odt, ki je že v oddaljeni shrambi:

Uporaba programa Rsync prek SSH z nestandardnimi vrati SSH

Če želite prenesti datoteke iz strežnika ali v strežnik s spremenjenimi vrata SSH, uporabite možnost -e 'ssh -p port_number'

Ukaz za kopiranje datoteke v strežnik, v katerem so vrata SSH spremenjena na 44, bo videti takole:

rsync -azrс --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/