rsync în Linux: sincronizare și backup controlat
rsync este unul dintre cele mai utile instrumente pentru copiere incrementală și sincronizare. Puterea lui vine din eficiență și flexibilitate, dar opțiuni precum --delete cer atenție, mai ales pe sisteme de producție.
Copiere locală cu rsync
Un exemplu de bază este rsync -a /sursa/ /destinatie/. Slash-ul final de pe sursă este important: schimbă dacă sincronizezi conținutul directorului sau directorul însuși. Testează pe directoare temporare până când diferența devine intuitivă.
Transfer prin SSH
Pentru un host remote poți folosi rsync -a -e ssh /sursa/ user@host:/destinatie/. Astfel beneficiezi de autentificarea și criptarea SSH. Cheile SSH și host verification trebuie configurate corect pentru automatizare sigură.
Dry-run înainte de modificări
Adaugă --dry-run sau -n când construiești o comandă nouă, mai ales dacă folosești --delete. Dry-run îți arată ce ar face rsync fără să modifice datele și este un obicei excelent pentru operații cu impact mare.
Ce face --delete
--delete elimină din destinație fișierele care nu mai există în sursă, în funcție de modul exact de rulare. Este util pentru mirror, dar periculos dacă inversezi sursa și destinația sau alegi o cale greșită. Nu îl folosi mecanic.
Permisiuni și atribute
Opțiunea -a activează archive mode și păstrează mai multe atribute. În funcție de context pot fi necesare ACL-uri, xattrs sau ownership, iar copierea între filesystem-uri ori conturi cu privilegii diferite poate avea limitări.
rsync nu este singur un backup complet
O sincronizare în oglindă poate propaga și ștergeri sau corupții. Pentru backup, combină rsync cu versionare, snapshot-uri sau retenție pe destinație și testează periodic restaurarea. Un backup netestat este doar o presupunere.
Întrebări frecvente
rsync copiază de fiecare dată toate fișierele?
Nu. rsync compară sursa și destinația și poate transfera doar diferențele necesare, în funcție de scenariu și opțiuni.
Este sigur să folosesc --delete?
Da doar când înțelegi exact sursa, destinația și efectul. Este recomandat să rulezi mai întâi cu --dry-run și să verifici lista de fișiere afectate.