Content
- Več o Rsyncu
- Možnosti orodja
- Kratka razlaga sintakse
- Kopiranje ene datoteke v mapo v oddaljenem skladišču
- Kopiranje mape v mapo v oddaljeni shrambi
- Kopiranje vsebine lokalne mape v mapo na oddaljeni pomnilnik
- Kopiranje mape iz oddaljene shrambe v mapo lokalnega strežnika
- Kopiranje vsebine mape iz oddaljene shrambe v mapo lokalnega strežnika
- Kopiranje vsebine mape brez in/ali vključno z datotekami
- Kopirajte samo datoteke, ki se razlikujejo od datotek v ciljni mapi
- Uporaba programa Rsync prek SSH z nestandardnimi vrati SSH
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:
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 v 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/