Android

Cum se utilizează rsync pentru transferul și sincronizarea locală și de la distanță a datelor

How to Use rsync to Synchronize Files Between Servers: Linux Server Training 101

How to Use rsync to Synchronize Files Between Servers: Linux Server Training 101

Cuprins:

Anonim

Rsync este o utilitate rapidă și versatilă a liniei de comandă care sincronizează fișierele și folderele între două locații de pe un shell de la distanță sau de la / la un demon Rsync la distanță. Acesta oferă un transfer incremental rapid al fișierului prin transferul numai a diferențelor dintre sursă și destinație.

Rsync poate fi utilizat pentru oglindirea datelor, copiile de rezervă incrementale, copierea fișierelor între sisteme și ca înlocuitor pentru comenzile scp , sftp și cp pentru utilizare de zi cu zi.

În acest tutorial, vă vom arăta cum să utilizați rsync prin exemple practice și explicații detaliate ale celor mai comune opțiuni de rsync .

Instalarea Rsync

Utilitarul rsync este preinstalat pe majoritatea distribuțiilor Linux și macOS. Puteți verifica dacă este instalat pe sistemul dvs. tastând:

rsync --version

rsync version 3.1.2 protocol version 31

Instalați Rsync pe Ubuntu și Debian

sudo apt install rsync

Instalați Rsync pe CentOS și Fedora

sudo yum install rsync

Sintaxa comenzii Rsync

Înainte de a intra în modul de utilizare a comenzii rsync , să începem prin revizuirea sintaxei de bază.

Expresiile de utilitate rsync iau următoarea formă:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Opțiunile rsync. SRC - director sursă. DEST - Director destinație. USER - Nume utilizator de la distanță. HOST - Nume gazdă la distanță pentru adresa IP.

rsync oferă o serie de opțiuni care controlează fiecare aspect al comportamentului său. Cele mai utilizate opțiuni sunt:

  • -a , --archive , modul de arhivă, echivalent cu -rlptgoD . Această opțiune spune rsync să sincronizeze directiv repertoriile, să transfere dispozitive speciale și să blocheze, să păstreze legături simbolice, timpi de modificare, grup, proprietate și permisiuni. -z , --compress . Această opțiune va obliga rsync să comprimeze datele pe măsură ce acestea sunt trimise către mașina de destinație. Folosiți această opțiune numai dacă conexiunea la mașina de la distanță este lentă. -P , echivalent cu - --partial --progress . Când se folosește această opțiune, rsync va afișa o bară de progres în timpul transferului și pentru a păstra fișierele parțial transferate. Este util atunci când transferați fișiere mari prin conexiuni de rețea lente sau instabile. --delete . Când utilizați această opțiune, rsync va șterge fișierele extra din locația de destinație. Este util pentru oglindire. -q , --quiet . Utilizați această opțiune dacă doriți să suprimați mesajele care nu sunt de eroare. -e . Această opțiune vă permite să alegeți un shell diferit de la distanță. În mod implicit, rsync este configurat pentru a utiliza ssh.

Utilizare Rsync de bază

Pentru a copia un singur fișier de la unul la alt loc local, ar trebui să executați următoarea comandă:

rsync -a /opt/filename.zip /tmp/

Utilizatorul care execută comanda trebuie să aibă permisiuni de citire pe locația de destinație și permisiuni de scriere pe destinație.

Omiterea numelui de fișier din locația de destinație copiază fișierul cu numele curent. Dacă doriți să salvați fișierul sub un alt nume, specificați noul nume în partea de destinație:

rsync -a /opt/filename.zip /tmp/newfilename.zip

În exemplul de mai jos, creăm o copie de rezervă locală a fișierelor site-ului nostru web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Dacă directorul destinație nu există, rsync va crea.

De menționat este faptul că rsync oferă un tratament diferit directoarelor sursă cu un slash / . Dacă adăugați o bară oblică în directorul sursă, acesta va copia numai conținutul directorului în directorul destinație. Când omisiunea rsync este omisă, rsync va copia directorul sursă din directorul destinație.

Cum se utilizează Rsync pentru a sincroniza date de la / către un aparat la distanță

Când utilizați rsync pentru transfer la distanță, acesta trebuie instalat atât pe sursă, cât și pe mașina de destinație. Noile versiuni de rsync sunt configurate pentru a utiliza SSH ca un shell de la distanță implicit.

În următorul exemplu, transferăm un director de la o mașină locală la o mașină de la distanță:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Dacă nu ați setat o conectare SSH fără parolă la mașina de la distanță, vi se va cere să introduceți parola utilizatorului.

Dacă doriți să transferați date de la o telecomandă pe o mașină locală, atunci trebuie să utilizați locația la distanță ca sursă:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Dacă SSH pe gazda de la distanță ascultă un alt port decât cel implicit 22, puteți specifica portul cu opțiunea -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Când transferați cantități mari de date, se recomandă să rulați comanda rsync într-o sesiune de ecran sau să folosiți opțiunea -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Excludeți fișierele și directoarele

Când excludeți fișierele sau directoarele, trebuie să utilizați căile lor relative către locația sursă.

Există două opțiuni pentru a exclude fișierele și directoarele. Prima opțiune este să folosiți argumentul - --exclude și să specificați fișierele și directoarele pe care doriți să le excludeți pe linia de comandă.

În următorul exemplu, excludem node_modules și directoarele tmp care se află în interiorul src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

A doua opțiune este să folosiți argumentul --exclude-from și să specificați fișierele și directoarele pe care doriți să le excludeți dintr-un fișier.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Concluzie

În acest tutorial, ați învățat cum să folosiți Rsync pentru a copia și sincroniza fișiere și directoare. Există multe altele pentru a afla despre Rsync la pagina Manualului utilizatorului Rsync.

Simțiți-vă liber să lăsați un comentariu dacă aveți întrebări.

terminalul rsync