Kopiranje in varnostno kopiranje datotek in map z orodjem Rsync
Rsync je hitro in vsestransko orodje za kopiranje datotek in map. Pripomoček lahko kopira podatke lokalno in na druge gostitelje, vključno s Cloud Storage od 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 omogoča pospešitev postopka kopiranja med strežniki. Druga prednost je izpuščanje enakih datotek med kopiranjem. Zato se bodo kopirale ali prenašale samo različne datoteke, kar nedvomno prihrani čas pri sinhronizaciji velikih imenikov.
Možnosti pripomočka
Oglejmo si primere uporabe Rsync za kopiranje datotek in imenikov v oddaljeno Cloud Storage od Introserv z uporabo protokola SSH. Pomembno! Podobni ukazi, le z navedbo ciljnega strežnika, vam bodo omogočili kopiranje imenikov in datotek na kateri koli oddaljeni strežnik prek SSH.
Oglejmo si nekatere glavne možnosti pripomočka, ki se bodo najpogosteje uporabljale. Podrobnejši seznam razpoložljivih možnosti je na voljo v dokumentaciji man (ukaz man rsync):
-v – prikaz podrobnih informacij o procesu
-c – preverjanje kontrolnih vsot datotek
-q – minimalne informacije
-a – arhivski način
-R – relativne poti
-y – ne prepisuj novejših datotek
-b – ustvari varnostno kopijo
-l – kopiraj simbolične povezave
-L – kopiraj vsebino povezav
-H – kopiraj trde povezave
-g – ohrani skupino
-p – ohrani dovoljenja datotek
-t – ohrani čas spremembe
-x – delaj samo v tem datotečnem sistemu
-e – uporabi drug transportni protokol (npr. ssh)
-z – stisni datoteke pred prenosom
--delete – izbriši datoteke, ki niso v viru
--exclude – izključi datoteke
--recursive – rekurzivno naštej imenike
--no-recursive – onemogoči rekurzijo
--progress – prikaži napredek prenosa datotek
--stat – prikaži 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 nakazujejo, da je treba arhivirati preneseno datoteko, jo stisniti pred prenosom in prikazati napredek kopiranja na zaslonu
/home/user/test.file – pot do datoteke in sama datoteka, ki jo je treba prenesti
boxxxx@boxxxxx.introserv.cloud: – ciljni vir (v našem primeru je to oblačno shranjevanje, vendar je lahko tudi oddaljeni strežnik). boxxxx je uporabniško ime, za znakom @ je ime vira ali IP-naslov oddaljenega strežnika
/remote_folder/ – mapa na oddaljenem viru. V našem primeru – v Introserv Cloud Storage.
Kopiranje ene datoteke v mapo na oddaljenem shranjevanju
rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/
Pozvani boste k vnosu gesla za povezavo s shranjevanjem. Vnesite geslo in nadaljujte – videli boste napredek in hitrost prenosa datoteke.
Kopiranje mape v mapo na oddaljenem shranjevanju
Bodite pozorni na poševnice v vrsticah izvorne mape in ciljne mape. Odsotnost poševnice v izvorni mapi pomeni, da želimo rekurzivno prenesti lokalno mapo Desktop z vso njeno vsebino v mapo remote_folder.
rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/
Videli boste imenik in vse datoteke v njem med prenosom.
Kopiranje vsebine lokalne mape v mapo na oddaljenem shranjevanju
Bodite pozorni na poševnico na koncu izvorne mape. Njena prisotnost pomeni, da mora pripomoček kopirati vsebino lokalne mape v mapo na oddaljenem shranjevanju.
rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Videli boste napredek in hitrost kopiranja.
Kopiranje mape iz oddaljenega shranjevanja v mapo na lokalnem strežniku
Z uporabo Rsync lahko sprožite kopiranje mape iz oddaljenega shranjevanja. Ukaz je naslednji:
rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/
Videli boste napredek in hitrost kopiranja oddaljene mape v mapo na lokalnem strežniku.
Kopiranje vsebine mape iz oddaljenega shranjevanja v mapo na lokalnem strežniku
Tudi tukaj je vredno biti pozoren na poševnico na koncu poti 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 z izključitvijo in/ali vključitvijo datotek
Pripomoček omogoča izrecno določitev, katere datoteke je treba prenesti in katere je treba izključiti. Za to se uporabljata 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 je bila prenesena samo ena datoteka, določena z možnostjo --include. Upoštevajte, da se možnosti include in exclude lahko uporabljata ločeno.
Kopiranje samo datotek, ki se razlikujejo od datotek v ciljni mapi
Za preklic kopiranja enakih datotek je treba uporabiti možnost -c za preverjanje kontrolnih vsot datotek. To bo omogočilo izključitev iz postopka kopiranja tistih datotek, ki so že v ciljni mapi.
rsync -azrc --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Videli boste, da so bile v oddaljeno mapo kopirane samo različne datoteke, z izjemo datotek, ki so že na oddaljenem shranjevanju.
Uporaba Rsync prek SSH z nestandardnimi vrati SSH
Za prenos datotek z/na strežnik s spremenjenimi vrati SSH uporabite možnost -e 'ssh -p številka_vrat'.
Ukaz za kopiranje datoteke na strežnik, na katerem so bila vrata SSH spremenjena na 44, bo naslednji:
rsync -azrc --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/