Articles

cum se utilizează comanda rsync pentru a copia fișiere pe Ubuntu

rsync este un instrument pentru copierea fișierelor. rsync este folosit pentru a copia fișiere de pe computer la o mașină de la distanță, de la o mașină de la distanță la computer, de la un director la un alt director de pe același computer, de la computer la un hard disk extern sau cota de rețea etc. rsync poate fi, de asemenea, utilizat pentru a face copii de rezervă incrementale.

în acest articol, vă voi arăta cum să utilizați comanda rsync pentru a copia fișiere și directoare și pentru a face backup incremental. Voi folosi Ubuntu pentru demonstrație. Dar orice distribuție Linux modernă ar trebui să funcționeze foarte bine. Deci, să începem.

instalarea rsync:

rsync ar trebui să fie deja instalat pe Ubuntu. Dar, dacă nu este instalat pe computer din anumite motive, îl puteți instala cu ușurință din depozitul oficial de pachete Ubuntu cu următoarea comandă:

$ sudo apt install rsync-y

formatul comenzii rsync:

formatul de bază al comenzii rsync este,

$ rsync opțiuni sursă destinație

  • sursa poate fi un fișier sau un director sau o cale de rețea.
  • destinația poate fi un director sau o cale de rețea.
  • rsync are multe opțiuni. Puteți schimba comportamentul rsync folosind aceste opțiuni. Vom arunca o privire asupra unora dintre cele mai comune opțiuni pe parcurs.

când utilizați rsync, trebuie să știți următoarele lucruri:

  • dacă puneți un / după numele directorului în sursa rsync, cum ar fi myfiles/, atunci înseamnă copiați toate fișierele din interiorul directorului numai la destinație.
  • dacă nu puneți un / după numele directorului în sursa rsync, cum ar fi myfiles, atunci rsync va copia toate fișierele din director la destinație, inclusiv directorul.
  • dacă introduceți o cale de director de destinație care nu există, atunci rsync o va crea automat după cum este necesar.

copierea de rezervă a fișierelor și directoarelor locale cu rsync:

puteți copia fișiere dintr-un director în alt director de pe computer foarte repede cu rsync.

de exemplu, să presupunem că aveți câteva fișiere importante în directorul ~ / Downloads. Acum, doriți să faceți backup pentru toate fișierele din directorul ~ / Descărcări pe unitatea USB / dev /sdb1 montată în directorul/mnt / myusb.

să facem niște fișiere fictive în directorul ~ / Downloads.

$ touch ~/descărcări/test{1..100}

Acum, copiați toate fișierele din directorul ~/Descărcări în directorul /mnt/myusb cu următoarea comandă rsync:

$ rsync-avzh ~/downloads/ /mnt/myusb

fișierele trebuie copiate.

după cum puteți vedea, fișierele sunt în directorul/mnt / myusb.

de asemenea, puteți copia întregul director ~/descărcări pe unitatea USB după cum urmează:

$ rsync-avzh ~/descărcări /mnt/myusb

după cum puteți vedea, întregul director este copiat pe unitatea USB.

Din nou, dacă doriți să copiați toate fișierele din directorul ~/Descărcări într-un alt director (să zicem mydownloads/) de pe unitatea USB, rulați rsync după cum urmează:

$ rsync-avzh ~/downloads/ /mnt/myusb/mydownloads

după cum puteți vedea, fișierele sunt copiat corect pe unitatea USB.

copierea de rezervă a fișierelor și directoarelor la distanță cu rsync:

cu rsync, puteți copia fișiere și directoare de pe un server la distanță pe sistemul de fișiere local sau pe unitatea USB pentru backup. De asemenea, puteți copia fișiere și directoare din sistemul de fișiere local pe serverul dvs. de rezervă la distanță. rsync utilizează SSH pentru copierea fișierelor și directoarelor la/de la serverul de la distanță.

trebuie să aveți SSH Server package (openssh-server pe Ubuntu) și rsync pachet instalat pe serverul de la distanță, dacă doriți să utilizați rsync în scopuri de backup de fișiere.

de exemplu, să presupunem că doriți să copiați tot conținutul (inclusiv directorul) directorului /www de pe serverul dvs. la distanță www.example1.com USB montat pe calea /mnt/myusb pe sistemul de fișiere local.

pentru a face acest lucru, puteți utiliza următoarea comandă rsync:

$ rsync-avzh [email protected]:/www /mnt/myusb

notă: Aici, root este numele de utilizator la distanță, www.example1.com este numele DNS al serverului la distanță și / www este o cale de director pe serverul la distanță. De asemenea, puteți utiliza adresa IP a serverului la distanță în loc de numele DNS, dacă doriți.

este posibil să vedeți următorul mesaj dacă vă conectați pentru prima dată la serverul de la distanță. Doar tastați da și apoi apăsați <introduceți>.

acum, tastați parola pentru utilizatorul de la distanță (în cazul meu este root) și apăsați <Enter>.

toate fișierele și directoarele din directorul /www, inclusiv directorul /www, trebuie copiate pe unitatea USB, după cum puteți vedea în captura de ecran de mai jos.

de asemenea, puteți copia fișiere din sistemul de fișiere local pe serverul de la distanță cu rsync.

în exemplul anterior, ați luat o copie de rezervă a directorului /www pe serverul de la distanță. Acum, să spunem, unele dintre fișierele din serverul de la distanță sunt deteriorate și doriți să le recuperați din copia de rezervă.

pentru a face acest lucru, executați comanda rsync după cum urmează:

$ rsync-avzh/mnt/myusb/ www / [email protected]:/www

acum, tastați parola serverului de la distanță și apăsați <Enter>.

fișierele trebuie copiate din sistemul de fișiere local pe serverul de la distanță.

luând backup-uri incrementale cu rsync:

în acest tip de backup, directoarele sursă și destinație sunt păstrate în sincronizare. Dacă orice fișier este adăugat la directorul sursă, acesta este adăugat la directorul de destinație, de asemenea. În același mod, dacă orice fișier sau director din directorul sursă este eliminat, acesta este eliminat și din directorul destinație.rsync este un instrument excelent pentru a lua backup incremental.

Să presupunem că aveți un director ~ / cloud în directorul de acasă al utilizatorului. Acum, doriți să luați de rezervă incrementală a directorului la o unitate USB degetul mare montat pe calea / mnt / usb1 pe un server de la distanță backup.example.com.

notă: Trebuie să aveți pachete openssh-server și rsync instalate pe serverul dvs. la distanță pentru ca acest lucru să funcționeze.

pentru a face backup incremental al ~/cloud, executați următoarea comandă:

$ rsync-avzh –delete –progress ~/ nor / [email protected]:/mnt/usb1/backup

acum, tastați parola pentru utilizatorul dvs. la distanță și apăsați <introduceți>.

conținutul directorului ~ / cloud trebuie copiat pe unitatea USB de pe serverul de la distanță.

după cum puteți vedea, toate fișierele sunt copiate pe unitatea USB montată pe serverul de backup la distanță.

acum, să eliminăm un fișier din sistemul de fișiere local și să vedem ce se întâmplă.

$ rm ~/nor/pachete.txt

acum, utilizați rsync pentru a sincroniza din nou directoarele cu aceeași comandă ca înainte.

$ rsync-avzh — delete — progress ~/cloud/ [email protected]:/mnt/usb1/backup

după cum puteți vedea, pachetele de fișiere.txt este, de asemenea, eliminat de pe unitatea USB montată pe serverul de rezervă la distanță.

unde să mergem mai departe:

puteți găsi mai multe informații despre rsync în pagina de manual a rsync. Pagina man a rsync are o descriere detaliată a tuturor opțiunilor rsync. Vă recomand să verificați asta.

puteți accesa pagina man a rsync cu următoarea comandă:

$ Man rsync

deci, așa folosiți rsync pentru a copia fișiere și a face copii de rezervă incrementale pe Ubuntu. Vă mulțumim pentru citirea acestui articol.