Rsync pentru Linux: sincronizarea, copierea și salvarea fișierelor
9 min citire - 24 mai 2025

Cum să utilizați rsync pe Linux pentru transferuri incrementale, sincronizări la distanță prin SSH, backup-uri programate cu cron și evitarea capcanei trailing-slash.
Rsync pentru Linux: cum să sincronizați, să copiați și să faceți backup la fișiere ca un profesionist
Rsync este instrumentul standard pentru copierea fișierelor între sistemele Linux. Este mai rapid decât cp sau scp pentru orice operațiune pe care o executați de mai multe ori, se recuperează în cazul întreruperilor de rețea și transferă doar ceea ce s-a modificat efectiv. Acest articol prezintă ce face rsync, opțiunile utile, exemplele pe care le veți folosi cel mai des și cum să-l programați cu cron.
Ce este rsync?
Rsync este un utilitar de linie de comandă pentru copierea și sincronizarea fișierelor între locații. Funcționează local, prin SSH către o gazdă la distanță sau împotriva unui demon rsync. Diferența cheie față de cp sau scp: rsync compară mai întâi sursa și destinația, apoi transferă doar diferențele. Într-un director de 100 GB în care s-au modificat 200 MB, rsync mută 200 MB. cp și scp mută totul.
Este inclus în fiecare distribuție Linux modernă. Dacă lipsește: apt install rsync sau dnf install rsync.
De ce să folosiți rsync în locul cp sau scp
Trei motive pentru care rsync este superior pentru orice copiere non-trivială:
- Este incremental. Rulările ulterioare transferă doar octeții modificați, nu fișierele întregi. Pentru backupuri și oglinzi, acest lucru transformă o sarcină care dura o noapte întreagă într-una de câteva minute.
- Rezistă la întreruperi. Cu
--partial, un fișier de 50 GB transferat pe jumătate se reia de unde s-a oprit, în loc să înceapă de la capăt. - Păstrează metadatele. Modul arhivă (
-a) păstrează permisiunile, proprietatea, legăturile simbolice și marcajele de timp. Este esențial pentru fișierele de sistem, arborii sursă și orice altceva unde atributele contează.
Pentru copii unice ale fișierelor mici, scp este suficient. Pentru orice se repetă, orice consumă multă lățime de bandă sau orice ar trebui să reluați, folosiți rsync.
Indicatori rsync obișnuiți
Opțiunile pe care le veți folosi de fapt:
| Opțiune | Ce face |
|---|---|
-a | Mod arhivă. Păstrează permisiunile, proprietatea, legăturile simbolice și marcajele de timp. Echivalent cu -rlptgoD. |
-v | Verbose. Afișează lista fișierelor transferate. |
-z | Comprimare în timpul transferului. Util pentru conexiuni lente sau costisitoare, mai puțin util în rețeaua LAN sau pentru conținut deja comprimat. |
-P | Combină --partial și --progress. Reluarea transferurilor întrerupte, afișarea progresului în timp real. |
--delete | Șterge fișierele de la destinație care nu există la sursă. Necesar pentru o oglindire adevărată. |
--exclude | Omite fișierele care se potrivesc unui model. |
--exclude-from=FILE | Citește tiparele de excludere dintr-un fișier. Mai curat decât concatenarea mai multor --exclude opțiuni. |
--dry-run | Afișează ce s-ar întâmpla fără a transfera nimic. |
--bwlimit=KBPS | Limitează utilizarea lățimii de bandă în kilobyți pe secundă. Util pentru backup-urile care rulează în timpul programului de lucru. |
--checksum | Compară fișierele după suma de control în loc de dimensiune și data modificării. Este mai lent, dar detectează cazurile marginale. |
-e ssh | Utilizează SSH pentru transfer. Implicit în majoritatea instalărilor moderne. |
Comportamentul implicit compară dimensiunea fișierului și data modificării, ceea ce este rapid și aproape întotdeauna corect. Treceți la --checksum dacă un proces de implementare rescrie timestamp-urile fără a modifica conținutul sau dacă bănuiți o corupție la nivel de biți.
Exemple Rsync
Copiați un director local:
rsync -av /source/path/ /destination/path/Sincronizare cu un server la distanță prin SSH:
rsync -avz /local/dir/ user@remote:/remote/dir/Executare de probă înainte de a efectua operațiuni distructive:
rsync -avz --dry-run /local/dir/ user@remote:/dir/Oglindiți două directoare, inclusiv ștergerile de la destinație:
rsync -av --delete /source/ /destination/Excludeți jurnalele și un director temporar:
rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/Reluați un transfer de dimensiuni mari care ar putea fi întrerupt:
rsync -avP user@remote:/backups/big.img /local/Dacă sesiunea SSH se întrerupe, rulați din nou aceeași comandă. Cu -P, rsync reia de unde s-a oprit, în loc să înceapă de la zero.
Limitați lățimea de bandă la 50 MB/s pentru o copie de rezervă în afara orelor de vârf, astfel încât să nu satureze legătura ascendentă:
rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/Capcana cu slash-ul de la sfârșit
Cea mai frecventă greșeală în rsync:
rsync -av /source /destination/ # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/ # copies the CONTENTS of /source into /destinationO bară oblică la sfârșitul sursei înseamnă „tot ce se află în acest director”. Lipsa barei oblice la sfârșit înseamnă „acest director în sine”. Rulați cu --dry-run prima opțiune dacă nu sunteți sigur, mai ales când este combinată cu --delete.
Automatizarea rsync cu cron
Pentru backup-urile programate, aveți nevoie de trei lucruri:
Acces SSH fără parolă la destinație. Sarcinile cron nu pot introduce parole. Generați o cheie și copiați-o pe gazda de backup:
ssh-keygen -t ed25519 ssh-copy-id user@backup-hostUn script, nu o singură linie în crontab. Mai ușor de testat, mai ușor de înregistrat:
#!/bin/bash LOG=/var/log/rsync-backup.log rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1Faceți-l executabil cu
chmod +x.O intrare cron pentru a-l rula. Editați cu
crontab -e:0 2 * * * /usr/local/bin/rsync-backup.shAcest lucru rulează scriptul în fiecare noapte la ora 02:00.
Două îmbunătățiri care merită făcute în producție: încadrați scriptul în flock astfel încât o sarcină de lungă durată să nu se suprapună cu rularea din noaptea următoare și redirecționați ieșirea prin logger astfel încât eșecurile să ajungă în jurnalul de sistem, unde pot fi detectate de sistemul de monitorizare.
Concluzii
Rsync este unul dintre puținele instrumente Linux în cazul cărora timpul petrecut pentru a învăța semnificația opțiunilor se amortizează aproape imediat. Punctele principale:
- Transferurile incrementale și suportul pentru reluare fac din rsync alegerea potrivită pentru orice operațiune pe care o executați de mai multe ori
-apentru modul de arhivare,-zpentru compresie,-Ppentru reluare și progres,--deletepentru oglinzi adevărate- Atenție la bara oblică finală din calea sursă, mai ales cu
--delete - Combinați-l cu cron și cheile SSH pentru backupuri programate fără intervenție manuală
Pentru sarcini mari de backup care mută date între facilități, rularea rsync pe un VPS cu lățime de bandă nelimitată înseamnă că ferestrele de backup nu sunt limitate de plafoane de transfer.

Oboseala ochilor cauzată de ecranele digitale: Cum să vă protejați vederea într-o lume dominată de ecrane
Te uiți la ecran toată ziua? Află cum poți reduce oboseala oculară cauzată de ecranele digitale cu ajutorul unor tehnici și instrumente dovedite. Acest ghid este esențial pentru cei care lucrează de la distanță, pentru dezvoltatori și pentru oricine activează în domeniul tehnologiei.
4 min citire - 21 mai 2025
De ce este important să aveți un VPS performant și nelimitat
8 min citire - 9 mai 2025

Aveți întrebări sau aveți nevoie de o soluție personalizată?
Opțiuni flexibile
Acoperire globală
Implementare instantanee
Opțiuni flexibile
Acoperire globală
Implementare instantanee