V tem članku bomo z nekaj praktičnimi primeri razložili, kako uporabiti rsync za kopiranje datotek. Pojasnili bomo tudi uporabo rsync pri kopiranju ene datoteke, več datotek in imenika v lokalne in oddaljene sisteme. Zajemali bomo, kako uporabljati Rsync za:
- Kopirajte datoteko/imenik v lokalni sistem
- Kopirajte datoteko/imenik iz lokalnega v oddaljeni sistem
- Kopirajte datoteko/imenik iz oddaljenega sistema v lokalni
Pojasnili smo ukaze in postopek, omenjen v tem članku, na Ubuntu 20.04 LTS. Za kopiranje datotek z uporabo rsync boste potrebovali terminal ukazne vrstice. Če želite odpreti aplikacijo Terminal ukazne vrstice, uporabite bližnjico na tipkovnici Ctrl+Alt+T.
Namestitev programa Rsync
Rsync je vnaprej nameščen v Ubuntu 20.04 LTS. Če pa ga pomotoma odstranite iz sistema, ga lahko namestite na naslednji način:
$sudoaptnamestitersync
Tu je nekaj najpogosteje uporabljenih možnosti, ki jih je mogoče uporabiti z rsync:
–A: način arhiviranja
–V: prikazuje podrobnosti postopka kopiranja
–P: prikazuje vrstico napredka
–R: rekurzivno kopira podatke
–Z: stisne podatke
–Q: zavira izhod
Lokalno kopirajte datoteke in imenike
Splošna sintaksa rsync je:
$rsync[možnost] [vir] [cilj]
Lokalno kopirajte eno datoteko
Če želite kopirati datoteko z ene lokacije na drugo v sistemu, lahko to storite tako, da vnesete rsync sledi ime izvorne datoteke in ciljni imenik.
Na primer, če želite kopirati eno datoteko file1.txt s trenutne lokacije, ki je domači imenik, v imenik ~/Documents, bi bil ukaz naslednji:
$rsync/doma/verjeti/file1.txt/doma/verjeti/DokumentiOpomba: Namesto /home/tin/file1.txt lahko vnesemo tudi file1, saj trenutno delamo v domačem imeniku. Prav tako lahko uporabimo ~/Documents, namesto da omenimo celotno pot kot/home/tin/Documents.
Lokalno kopirajte več datotek
Če želite kopirati več datotek hkrati z ene lokacije na drugo v sistemu, lahko to storite tako, da vnesete rsync sledi ime izvornih datotek in ciljni imenik.
Na primer, za kopiranje datotek file2.txt in file3.txt iz domačega imenika v imenik ~/Documents bi bil ukaz naslednji:
$rsync/doma/verjeti/file2.txt/doma/verjeti/file3.txt/doma/verjeti/DokumentiČe želite kopirati vse datoteke z isto razširitvijo, lahko uporabite simbol zvezdice (*), namesto da posamezno določite imena datotek. Na primer, za kopiranje vseh datotek iz domačega imenika, ki se konča z razširitvijo .zip, v imenik ~/Documents bomo uporabili:
$rsync/doma/verjeti/ *.zip ~/DokumentiLokalno kopirajte imenike
Če želite kopirati imenik z njegovim podimenikom in vso vsebino z enega mesta na drugega v vašem sistemu, lahko to storite tako, da vnesete rsync sledi izvorni in ciljni imenik.
Na primer, če želite kopirati vzorčni imenik v imenik test/ v domačem imeniku, bi bil ukaz naslednji:
$rsync-od /doma/verjeti/vzorec/doma/verjeti/preskusOpomba: Določitev / po izvornem imeniku kopira samo vsebino imenika. Če za izvorni imenik ne določimo /, se izvorni imenik kopira tudi v ciljni imenik.
Tako kot v naslednjem izhodu lahko vidite, da je naš vzorec izvornega imenika tudi kopiran v ciljni imenik (saj smo uporabili vzorec namesto vzorca/ kot izvorni imenik).
Rsync podpira postopni prenos, kot lahko vidite v zgornjem izhodu, da prenaša samo nove ali posodobljene datoteke.
Kopirajte datoteke glede na največjo velikost
Med kopiranjem lahko določimo tudi največjo velikost datotek, ki jih je mogoče kopirati z možnostjo –max-size. Na primer, če želite kopirati datoteke, ki niso večje od 2000k iz ~/Downloads v imenik ~/Documents, bi bil ukaz naslednji:
$rsync-za -največja velikost= 2000k/doma/verjeti/Prenosi/ * /doma/verjeti/DokumentiTa ukaz bo kopiral vse datoteke iz ~/Downloads v imenik ~/Documents, razen tistih, večjih od 2000k.
Kopirajte datoteke glede na najmanjšo velikost
Podobno lahko določimo tudi najmanjšo velikost datotek, ki jih je mogoče kopirati z možnostjo –min-size. Na primer, če želite kopirati datoteke, ki niso manjše od 5M iz ~/Downloads v imenik ~/Documents, bi bil ukaz naslednji:
$rsync-za -min= 5M/doma/verjeti/Prenosi/ /doma/verjeti/DokumentiTa ukaz bo kopiral vse datoteke iz ~/Downloads v imenik ~/Documents, razen tistih, ki so manjše od 5M.
Izključi datoteke
Med kopiranjem datotek iz enega imenika v drugega lahko nekatere datoteke izključite z možnostjo —exclude, ki ji sledi ime datoteke ali razširitev vrste datoteke.
Na primer, če želite izključiti vse datoteke .zip med kopiranjem datotek iz imenika ~/Downloads v ~//Documents, bi bil ukaz naslednji:
$rsync-za --izključi='*.zip' /doma/verjeti/Prenosi/ /doma/verjeti/DokumentiKopirajte datoteke in imenike na daljavo
Z Rsync lahko v oddaljeni sistem kopirate eno datoteko, več datotek in imenike. Za daljinsko kopiranje datotek in imenikov boste potrebovali:
- Rsync je nameščen v lokalnem in oddaljenem sistemu
- Dostop SSH do oddaljenega sistema
- Geslo za oddaljenega uporabnika
Pred kopiranjem datotek z uporabo rsync preverite, ali lahko dostopate do oddaljenega sistema prek SSH:
$sshremote_user@remote_ip
Splošna skladnja za kopiranje datotek in imenikov v oddaljeni sistem z uporabo rsync:
Na primer, če želite kopirati eno datoteko file.txt iz ~/Downloads v imenik oddaljenega sistema ~/Documents, bi bil ukaz naslednji:
$rsync-v~/Prenosi/file1.txt umara@192.168.72.164:~/DokumentiPodobno, če želite kopirati imenik ~/Downloads/files v lokalnem sistemu s podimenikom in vso vsebino v imenik ~/Downloads/vzorci v oddaljenem sistemu:
$rsync-rv~/Prenosi/datoteke umra@192.168.72.164:~/Prenosi/vzorciDatoteke in imenike lahko tudi kopirate z oddaljenega računalnika na lokalni računalnik. Če želite na primer kopirati datoteko file2.txt iz oddaljenega sistema na namizje lokalnega sistema:
$rsync-vumara@192.168.72.164:~/Prenosi/file2.txt ~/Namizni računalnik/Podobno za kopiranje imenika iz oddaljenega sistema v lokalni sistem
$rsync-rvumara@192.168.72.164:~/Prenosi/vzorec ~/Namizni računalnik/preskusMed kopiranjem datotek v/iz oddaljenega sistema lahko uporabite tudi vse možnosti, kot so –max-size, –min-size, –exclude in druge.
Rsync je odlično orodje za kopiranje datotek od vira do cilja lokalno ali na daljavo. Vključuje velik nabor možnosti, ki vam omogočajo prilagodljivost in nadzor med prenosom datotek v/iz oddaljenega sistema.