Android

Cum să transferați fișierele cu rsync prin ssh

#09 - How To Build QEMU Images With Buildroot - Hardware Hacking Tutorial

#09 - How To Build QEMU Images With Buildroot - Hardware Hacking Tutorial

Cuprins:

Anonim

Când vine vorba de transferul fișierelor între sisteme din rețea, utilizatorii Linux și Unix au la dispoziție o mulțime de instrumente.

Cele mai populare protocoale de transfer de date sunt SSH și FTP. În timp ce FTP este foarte popular, preferă întotdeauna să folosești SSH, deoarece este cel mai sigur mod de a transfera fișierele tale.

Există instrumente specializate pentru transferul fișierelor prin SSH, cum ar fi scp și sftp dar niciuna nu are toate caracteristicile pe care rsync oferă. rsync poate fi utilizat pentru oglindirea datelor, copii de rezervă incrementale, copierea fișierelor între sisteme și așa mai departe.

În acest tutorial, vă vom explica cum să copiați fișierele cu rsync prin SSH.

cerinţe

  • Utilitarul rsync trebuie instalat atât la destinație cât și la sistemele sursă. Dacă nu este instalat, îl puteți instala folosind managerul de pachete de distribuție:

    Ubuntu și Debian:

    sudo apt install rsync

    CentOS și Fedora:

    sudo yum install rsync

    Acces SSH la computerul de la distanță.

    Utilizatorul care rulează comanda rsync și utilizatorul SSH de la distanță trebuie să aibă permisiunile corespunzătoare pentru citirea și scrierea fișierelor.

Utilizarea rsync pentru a transfera fișierele prin SSH

Cu rsync , puteți transfera fișiere și directoare prin SSH de pe și către serverele la distanță.

Sintaxa generală pentru transferul fișierelor cu rsync este următoarea:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

În cazul în care SRC este directorul sursă, DEST este directorul de destinație USER este numele de utilizator SSH de la distanță, iar HOST este gazda sau adresa IP de la distanță.

Versiunile mai noi de rsync sunt configurate pentru a utiliza SSH ca shell-ul de la distanță implicit, astfel încât să puteți omite opțiunea -e ssh .

De exemplu, pentru a transfera un singur fișier /opt/file.zip din sistemul local în directorul /var/www/ din sistemul de la distanță cu IP 12.12.12.12 ar trebui să rulați:

rsync -a /opt/file.zip [email protected]:/var/www/

Opțiunea -a înseamnă un mod de arhivă care va sincroniza directiv repertoriile, va transfera dispozitive speciale și blochează, va păstra legăturile simbolice, timpul de modificare, grupul, proprietatea și permisiunile.

Dacă fișierul există pe serverul de la distanță, acesta va fi suprascris. Dacă doriți să salvați fișierul sub un alt nume, specificați noul nume:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Pentru a transfera date de la o telecomandă la o mașină locală, utilizați locația la distanță ca sursă și locația locală ca destinație:

rsync -a [email protected]:/var/www/file.zip /opt/

Transferul directoarelor cu rsync prin SSH este același cu transferul fișierelor.

Este important să știți că rsync oferă diferite tratamente directoarelor sursă cu un slash / . Când directorul sursă are o bară rsync , rsync va copia numai conținutul directorului sursă în directorul destinație. Când omisiunea finală este omisă, directorul sursă va fi copiat în directorul destinație.

De exemplu, pentru a transfera directorul local /opt/website/images/ directorul /var/www/images/ pe o mașină de la distanță, ar trebui să introduceți:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Folosiți opțiunea --delete dacă doriți să sincronizați directorul local și la distanță. Aveți grijă când utilizați această opțiune, deoarece va șterge fișierele din directorul destinație, dacă acestea nu există în directorul sursă.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Dacă SSH pe gazda de la distanță ascultă un alt port decât cel implicit 22 , specificați portul cu ajutorul opțiunii -e . De exemplu, dacă SSH ascultă pe portul 3322 utilizați:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Atunci când transferați cantități mari de date, este recomandat să rulați comanda rsync în cadrul unei sesiuni de ecran sau să folosiți opțiunea -P care îi spune rsync să arate o bară de progres în timpul transferului și să păstrați fișierele parțial transferate:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Concluzie

V-am arătat cum să utilizați rsync peste SSH pentru a copia și sincroniza fișiere și directoare.

De asemenea, poate doriți să citiți cum să excludeți fișierele sau directoarele cu rsync .

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

terminalul rsync