15 exemple de Rsync

15 Exemple De Rsync



Transferul fișierelor dintr-o locație în altă locație este o sarcină foarte comună pentru utilizatorul Linux. Multe opțiuni sunt disponibile în Linux pentru a face această sarcină; „rsync” este unul dintre ele. Forma completă a „rsync” este „Remote Sync”. Este un instrument de sincronizare foarte util pentru a copia fișierele și folderele dintr-un sistem în alt sistem local sau de la distanță. Are mult mai multe beneficii decât celelalte instrumente de sincronizare. Acest instrument este instalat implicit în Linux. Deci, utilizatorul nu are nevoie să-l instaleze. Avantajele și utilizările comenzii „rsync” sunt prezentate în acest tutorial folosind 15 exemple simple.

Avantajele comenzii „Rsync”.

  1. Este mai rapid decât celelalte instrumente, deoarece copiază numai acele fișiere din locația sursă în locația de destinație care sunt modificate sau nu există în locația de destinație.
  2. Suportă transferul incomplet.
  3. Necesită lățime de bandă mai mică deoarece comprimă datele în timpul transmisiei.
  4. Reduce costul general al transmisiei, deoarece datele mai puțin importante pot fi transmise fără criptare.

Sintaxă

Sintaxa comenzii „rsync” este dată în următoarele:

rsync [Opțiune] Destinație sursă

Aici, căile sursă și destinație pot fi locale sau la distanță. Diferite tipuri de opțiuni pot fi utilizate cu această comandă în scopuri diferite.







Opțiuni utile ale comenzii „Rsync”.

Unele opțiuni frecvent utilizate ale comenzii „rsync” sunt explicate în cele ce urmează:



Opțiune Scop
-Cu Este folosit pentru a comprima datele în timpul transmisiei.
-r Este folosit pentru a sincroniza datele recursiv fără a păstra nicio permisiune de fișier.
-A Este folosit pentru a sincroniza datele în mod recursiv, păstrând toate permisiunile pentru fișiere.
-b Este folosit pentru a păstra o copie de rezervă a datelor în timpul transmiterii.
-în Este folosit pentru a afișa rezultatul în format verbose.
-p Este folosit pentru a afișa progresul transferului.
-n Este folosit pentru a verifica dacă sincronizarea funcționează sau nu înainte de a transfera fișierele sau folderele.

Lista cu 15 exemple „Rsync”.

  1. Transferați un singur fișier și un singur folder local
  2. Transferați mai multe fișiere și foldere local
  3. Transferați un singur fișier și folder de la distanță
  4. Transferați mai multe fișiere și foldere de la distanță
  5. Afișați progresul transferului
  6. Comprimați datele în timpul transferului
  7. Transfer cu limita de lățime de bandă
  8. Transferați fișierele și folderele în mod recursiv
  9. Transfer cu limita de dimensiune minimă
  10. Transfer cu limita maximă de dimensiune
  11. Transferați fișierele de tipul particular
  12. Afișați diferențele dintre fișierele sursă și destinație
  13. Includeți sau excludeți fișierele în timpul transferului
  14. Sincronizați datele în modul uscat
  15. Ștergeți fișierele și folderele sursă după transfer

Transferați un singur fișier și un singur folder local

Rulați comanda „ls” pentru a afișa lista de fișiere și foldere din locația curentă. Apoi, rulați comanda „rsync” pentru a transfera fișierul „employees.txt” în fișierul „employees_copy.txt” local. Rulați comanda „ls” din nou pentru a verifica dacă fișierul este transferat corect sau nu.



$ ls
$ rsync employees.txt employees_copy.txt
$ ls

Următoarea ieșire arată că fișierul „employee.txt” a fost transferat cu succes:





Să presupunem că conținutul folderului temp trebuie să fie transferat în folderul tempdir unde fișierul „courses.txt” există în ambele foldere. Rulați comanda „ls temp” pentru a verifica conținutul folderului temp. Apoi, rulați comanda „cat temp/courses.txt” pentru a verifica conținutul acestui fișier. Apoi, rulați comanda „ls tempdir” pentru a verifica conținutul folderului tempdir. Apoi, rulați comanda „cat tempdir/courses.txt” pentru a verifica conținutul acestui fișier.



$ ls temp
$ cat temp/cursuri.txt
$ lstempdir
$ cat tempdir/cursuri.txt

Rezultatul arată că conținutul fișierului „courses.txt” al folderelor temp și tempdir este ușor diferit, iar fișierul „courses.txt” al folderului temp conține mai multe date decât fișierul „courses.txt” al folderului tempdir .

Rulați următoarea comandă pentru a transfera conținutul folderului temp în folderul tempdir și verificați conținutul fișierului „courses.txt” din folderul tempdir pentru a confirma dacă fișierul este actualizat corect sau nu:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/cursuri.txt

Următoarea ieșire arată că conținutul folderului temp este transferat corect în folderul tempdir și conținutul fișierului „courses.txt” al folderului tempdir este actualizat corect:

Transferați mai multe fișiere și foldere local

Comanda „rsync” poate fi utilizată pentru a transfera mai multe fișiere și foldere local. Rulați următoarea comandă pentru a transfera fișierele „ping1.bash” și „ping2.bash” în folderul tempdir și verificați conținutul folderului tempdir după transfer. Opțiunea -v este utilizată împreună cu comanda „rsync” pentru a afișa rezultatul în format verbos:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Următoarea ieșire arată că mai multe fișiere sunt transferate corect în folderul tempdir:

Rulați următoarele comenzi pentru a verifica conținutul folderelor temp, tempdir și test și pentru a transfera conținutul folderului test și tempdir în folderul temp:

$ ls temp
$ lstempdir
$ ls test
$ rsync -av test/ tempdir/ temp/
$ ls temp

Rezultatul arată că conținutul folderelor test și tempdir este transferat cu succes în folderul temp. Fișierele „customers.csv”, „ping1.bash” și „ping2.bash” sunt adăugate ca fișiere noi în folderul temporar:

Transferați un singur fișier și folder de la distanță

Trebuie să instalați și să configurați serverul SSH în locația de la distanță pentru a transfera fișierele și folderele de la distanță. Puteți verifica acest lucru tutorial pentru a configura serverul SSH.

Rulați următoarea comandă pentru a verifica dimensiunea fișierului „courses.txt” al locației curente:

ls -la courses.txt

Rezultatul arată că dimensiunea fișierului „courses.txt” este de 65 de octeți:

Rulați următoarea comandă pentru a transfera „courses.txt” în /home/ubuntu/cursuri/ folderul locației la distanță, ubuntu@192.168.0.101. Trebuie să furnizați parola de root a mașinii de la distanță înainte de a transfera fișierul:

rsync -v courses.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Următoarea ieșire arată că fișierul „courses.txt” este transferat corect în mașina de la distanță și dimensiunea fișierului este de 65 de octeți:

Rulați următoarea comandă pentru a transfera folderul temp în /home/ubuntu/cursuri/ folderul locației la distanță, ubuntu@192.168.0.101. Trebuie să furnizați parola de root a mașinii de la distanță înainte de a transfera fișierul ca la comanda anterioară.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

Următoarea ieșire arată că conținutul folderului temp este transferat corect în mașina de la distanță:

Transferați mai multe fișiere și foldere de la distanță

Următoarea comandă „rsync” transferă fișierele „customers.csv” și „department.json” în /home/Ubuntu/fișiere/ folderul locației la distanță, ubuntu@192.168.0.101.

rsync -av customers.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Următoarea ieșire arată că mai multe fișiere sunt transferate cu succes în locația de la distanță:

Următoarea comandă „rsync” transferă conținutul folderelor temp și test și fișierul „department.json” în /home/Ubuntu/fișiere/ folderul locației la distanță, ubuntu@192.168.0.101.

rsync -av temp/ test/ departament.json ubuntu@192.168.0.101:/home/ubuntu/files/

Următoarea ieșire arată că conținutul mai multor foldere este transferat cu succes în locația de la distanță:

Afișați progresul transferului

Rulați comanda „rsync” cu opțiunea –progress pentru a transfera conținutul folderului tempdir în folderul temp_copy cu informațiile despre progres.

rsync -a tempdir/ temp_copy --progress

Următoarea ieșire arată că directorul temp_copy este creat local și conținutul folderului tempdir este transferat cu succes în folderul temp_copy:

Comprimați datele în timpul transferului

Rulați următoarea comandă „rsync” cu opțiunea –z pentru a comprima și a transfera directorul tempdir în directorul de testare local:

rsync -za tempdir/test/

Următoarea ieșire arată că directorul comprimat este transferat cu succes local:

Transfer cu limita de lățime de bandă

Rulați următoarea comandă „rsync” cu opțiunea –bwlimit cu valoare 100 pentru a transfera fișierul /etc/passwd în folderul temp local:

rsync -v --bwlimit=100 etc/passwd temp/

Următoarea ieșire arată că fișierul passwd a fost transferat cu succes:

Transferați fișierul și folderul în mod recursiv

Rulați următoarea comandă „rsync” cu opțiunea –rv pentru a transfera folderul de testare în folderul test_bak local:

rsync -rv test/ test_bak/

Următoarea ieșire arată că folderul de test este transferat cu succes în folderul test_bak:

Transfer cu limita de dimensiune minimă

Transferul fișierelor și folderelor folosind comanda „rsync” poate fi limitat folosind opțiunea –min-size pentru a seta limita de dimensiune minimă a transferului fișierelor și folderelor. Rulați următoarea comandă „ls -la tempdir” pentru a verifica dimensiunea fiecărui fișier și folder din acest folder. Apoi, rulați comanda „rsync” pentru a transfera conținutul folderului tempdir în folderul tempdir_bak cu limita de dimensiune minimă.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Următoarea ieșire arată că există două fișiere în folderul tempdir care se potrivește cu dimensiunea minimă. Acestea sunt „ping1.bash” (248 de octeți) și „test.txt” (34504 de octeți). Aceste fișiere sunt transferate în folderul tempdir_bak și celelalte fișiere din folderul tempdir sunt omise:

Transfer cu limita maximă de dimensiune

Transferul fișierelor și folderelor folosind comanda „rsync” poate fi limitat folosind opțiunea –max-size pentru a seta limita de dimensiune maximă a fișierelor și folderelor transferate. Rulați următoarea comandă „ls -la temp” pentru a verifica dimensiunea fiecărui fișier și folder din acest folder. Apoi, rulați comanda „rsync” pentru a transfera conținutul folderului temp în folderul temp_bak cu limita de dimensiune maximă.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

Următoarea ieșire arată că există patru fișiere în folderul temp care se potrivește cu limita maximă de dimensiune. Acestea sunt „courses.txt” (65 bytes), „employees.csv” (361 bytes), „ping1.bash” (248 bytes) și „ping2.bash” (244 bytes). Aceste fișiere sunt transferate în folderul temp_bak, iar celelalte fișiere din folderul temp sunt omise:

Transferați fișierele de tipul particular

Tipul de fișier care va fi transferat poate fi setat prin menționarea extensiei fișierului în comanda „rsync”. Rulați următoarea comandă „rsync” pentru a transfera toate fișierele text ale folderului temp în folderul mydir. Aici, extensia fișierului text este indicată folosind „*.txt”:

rsync -v temp/*.txt mydir/

Următoarea ieșire arată că două fișiere text, „courses.txt” și „test.txt”, sunt transferate în folderul mydir, iar celelalte fișiere din folderul temp sunt omise:

Afișați diferențele dintre fișierele sursă și destinație

Când fișierele sau folderele sunt transferate dintr-o locație în altă locație local sau de la distanță, ambele locații pot conține aceleași fișiere sau foldere. Diferențele dintre sursă și destinație în timpul transmisiei pot fi examinate folosind opțiunea -i cu comanda „rsync”. Rulați următoarele comenzi „cat” pentru a verifica conținutul fișierului sursă și destinație înainte de transfer. Aici, fișierul „courses.txt” este transferat în folderul temp.

cursuri de pisici.txt
cat temp/cursuri.txt
rsync -avi courses.txt temp/

Următoarea ieșire arată că fișierul „courses.txt” al sursei și al destinației sunt ușor diferite. Ieșirea comenzii „rsync” arată diferența dintre fișiere:

Sincronizați datele în modul uscat

Dacă doriți să știți ce fișiere și foldere sunt transferate de comanda „rsync” înainte de transferul propriu-zis, este mai bine să rulați comanda „rsync” cu opțiunea –dry-run sau cu opțiunea –n. Când comanda „rsync” este executată cu această opțiune, verifică ce fișiere sau foldere sunt copiate din folderul sursă în folderul de destinație, dar păstrează folderul de destinație neschimbat. Rulați fișierul „ls –la department.json” pentru a verifica dimensiunea fișierului. Apoi, rulați comanda „rsync” cu modul –dry-run pentru a verifica transferul „department.json” în folderul temp.

ls -la departament.json
rsync -v --dry-run department.json temp/

Următoarea ieșire arată că dimensiunea fișierului „department.json” este de 1172 de octeți. Dimensiunea fișierului arată 1172 de octeți după executarea comenzii „rsync” cu opțiunea –dry-run:

Includeți sau excludeți fișierele în timpul transferului

Puteți filtra tipul fișierului în momentul transferului de la locația sursă la locația de destinație folosind opțiunile –include și –exclude. Opțiunea „optionsinclude” este folosită pentru a defini extensia acelor fișiere care vor fi transferate de la sursă la destinație. Opțiunea –exclude este folosită pentru a defini extensia acelor fișiere care nu vor fi transferate de la sursă la destinație.

Rulați următorul folder „ls temp” pentru a verifica conținutul folderului temp. Apoi, rulați comanda „rsync” cu opțiunile –include și –exclude. Conform comenzii, toate fișierele CSV ale folderului temp sunt transferate în folderul fișiere și toate fișierele text ale folderului temp sunt omise în momentul transferului. Apoi, rulați comanda „ls files” pentru a verifica ce fișiere sunt transferate din folderul temporar în folderul fișiere.

ls temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
fișierele ls

Următoarea ieșire arată că folderul temp conține două fișiere CSV, două fișiere text și două fișiere BASH. Dosarul de fișiere este gol înainte de transfer și sunt transferate două fișiere CSV și două fișiere BASH:

Ștergeți fișierele și folderele sursă după transfer

În toate comenzile anterioare „rsync”, fișierele și folderele sursă rămân în locația sursă după transferul în locația de destinație. Dar, uneori, necesită transferul permanent al fișierelor și folderelor în locația de destinație. Această sarcină poate fi realizată folosind opțiunea –remove-source-files cu comanda „rsync”. Rulați comanda „ls” pentru a verifica toate fișierele și folderele din locația curentă. Rulați comanda „ls temp” pentru a verifica fișierele și folderele din folderul temp. Apoi, rulați comanda „rsync” cu opțiunea –remove-source-files pentru a șterge fișierele și folderele din locația sursă după finalizarea transferului. Rulați comanda „ls” din nou pentru a verifica dacă fișierul sursă este eliminat sau nu din locația sursă.

ls
ls temp
rsync  employees.csv temp/ --remove-source-files
ls

Următoarea ieșire arată că fișierul „employees.csv” al locației curente este transferat în folderul temporar și fișierul „employees.csv” este eliminat din locația sursă după transfer:

Concluzie

„rsync” este un instrument foarte util al Linuxului care face ca sarcina de transmitere a fișierelor și folderelor dintr-o locație în alta locație să fie mai ușoară folosind diferite opțiuni. Metodele de utilizare a comenzii „rsync” pentru a transfera fișierele și folderele dintr-o locație în altă locație prin comprimare, setarea dimensiunii fișierelor și folderelor, setarea tipului fișierului, setarea limitei lățimii de bandă etc. sunt prezentate în 15 exemple simple de acest tutorial. Acest tutorial îi ajută pe utilizatorii Linux să cunoască corect utilizările de bază ale comenzii „rsync” în Linux.