Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

Več o Rsyncu

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 pripomočka omogočajo nadzor številnih vidikov kopiranja in zrcaljenja podatkov.
Ena glavnih funkcij je možnost stiskanja podatkov med pošiljanjem, kar vam omogoča, da pospešite postopek kopiranja med strežniki.
Druga prednost je izjema pri kopiranju enakih datotek. Zato se bodo kopirale ali prenašale le 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 v oddaljeno shrambo v oblaku iz strežnika Introserv z uporabo protokola SSH. Pomembno! S podobnimi ukazi, le da določite 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 prepisujte novejših datotek
-b - ustvari varnostno kopijo
-l - kopiranje simelnih povezav
-L - kopiranje vsebine povezav
-H - kopiranje trdih povezav
-g - shrani skupino
-p - ohrani dovoljenja za datoteke
-t - shrani čas spremembe
-x - deluje samo v tem FS
-e - uporabite drug transportni protokol (na primer ssh)
-z - stisnite datoteke pred prenosom
--delete - izbriše datoteke, ki niso v viru
--exclude - izključi datoteke
--recursive - rekurzivno našteje imenike
--no-recursive - onemogoči rekurzijo
--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:

Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

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

Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

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 in varnostno kopiranje datotek in map z orodjem Rsync

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 v oddaljeni shrambi.

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

Videli boste napredek in hitrost kopiranja:

Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

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 in varnostno kopiranje datotek in map z orodjem Rsync

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 in varnostno kopiranje datotek in map z orodjem Rsync

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.

Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

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:

Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync

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/