Ce face rsync
Comanda rsync (remote sync) este instrumentul standard din industrie pentru copii de rezervă (backup), sincronizare de directoare și deploy pe servere de producție.
Algoritmul său inteligent compară fișierele de la sursă și destinație (după mărime și timestamp) și transferă prin rețea doar părțile care s-au schimbat efectiv, economisind timp și lățime de bandă.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-a, --archive |
Mod arhivă (echivalent cu -rlptgoD): păstrează recursivitatea, permisiunile, linkurile simbolice, proprietarul, grupul și timestamp-urile. |
-v, --verbose |
Afișează detaliat numele fiecărui fișier sincronizat. |
-z, --compress |
Comprimă datele în timpul transferului prin rețea. |
-P |
Combină --progress (afișează bara de progres în timp real) cu --partial (permite reluarea transferului întrerupt). |
--delete |
Șterge de la destinație fișierele care nu mai există la sursă (pentru o oglindă 1:1 perfectă). |
-n, --dry-run |
Mod simulare: arată ce fișiere ar fi transferate sau șterse FĂRĂ a face vreo modificare reală pe disc. |
Exemple
Exemplul 1: Sincronizarea locală a două directoare
Creăm o copie fidelă a fișierelor de proiect.
mkdir -p proiect_sursa backup_destinatie
echo "v1" > proiect_sursa/cod.py
rsync -av proiect_sursa/ backup_destinatie/ | grep "cod.py"
Rezultat
cod.py
Exemplul 2: Deploy pe server cu excluderea fișierelor inutile
Sincronizăm proiectul ocolind folderele locale de cache și git.
rsync -avzP --exclude='.git' --exclude='node_modules' ./ user@server:/var/www/app/
Ieșire în terminal
sending incremental file list
app.js
2,450 100% 2.34MB/s 0:00:00 (xfr#1, to-chk=4/12)
index.html
4,120 100% 3.93MB/s 0:00:00 (xfr#2, to-chk=3/12)
sent 3,210 bytes received 70 bytes 6,560.00 bytes/sec
total size is 6,570 speedup is 2.00
Greșeli frecvente
- Slash-ul final la sursă:
rsync -a folder/ dest/copiază CONȚINUTUL din interiorul folderului, în timp cersync -a folder dest/creează folderul însuși în destinație (rezultânddest/folder/). - Rularea
--deletefără o simulare prealabilă--dry-run(poate șterge fișiere prețioase de pe server dacă ai greșit calea sursă).