rsync (Remote Sync) este un utilitar puternic și eficient în Linux utilizat pentru sincronizarea fișierelor și a directoarelor între două locații dintr-o rețea. Este utilizat în mod obișnuit pentru backup-uri, oglindirea datelor și transferul eficient de fișiere prin copierea doar a diferențelor dintre sursă și destinație.
Acest ghid vă va ghida prin instalarea, utilizarea de bază și tehnicile avansate ale rsync pentru a vă ajuta să gestionați eficient fișierele dintr-o rețea.
Majoritatea distribuțiilor Linux vin cu rsync preinstalat. Pentru a verifica dacă este instalat, executați
rsync --version
Dacă nu este instalat, îl puteți instala utilizând managerul de pachete al distribuției dvs:
sudo apt install rsync
sudo yum install rsync
sudo dnf install rsync
sudo pacman -S rsync
📌 Cum să transferați fișiere de pe Windows pe un server la distanță folosind rsync prin PuTTY SSH?
Pentru a utiliza rsync pe Windows prin PuTTY SSH, trebuie să aveți instalat:
PuTTY pentru conexiuneSSH
rsync și OpenSSH pe Windows
Pagent (opțional) pentru autentificarea automată cu cheia SSH
Dacă ați descărcat MSYS2, puteți instala rsync cu ușurință utilizând pacman, managerul de pachete al MSYS2.
pacman -Syu
pacman -Su
✅ Acest pas vă asigură că aveți cea mai recentă versiune a managerului de pachete.
pacman -S rsync
💡 Dacă aveți nevoie de openssh pentru transferul SSH, instalați-l și pe acesta:
pacman -S openssh
Verificarea instalării
Pentru a verifica dacă rsync a fost instalat corect, executați:
rsync --version
Sintaxa de bază a rsync este:
rsync [opțiuni] sursă destinație
Pentru sincronizarea fișierelor între două directoare locale:
rsync -av /source/directory/ /destination/directory/
Bara oblică / din sursă asigură copierea doar a conținutului directorului, nu a directorului în sine.
Pentru a transfera fișiere de pe un sistem local către un server la distanță:
rsync -avz /local/directory/ user@remote_host:/remote/directory/
*După ce am adăugat comanda în MSYS2, vom adăuga datele SSH pentru a ne conecta la serverul de la distanță și rezultatul va fi afișat:
Această comandă copiază în siguranță fișierele pe serverul la distanță utilizând SSH.
Verificați dacă comanda a fost îndeplinită cu succes pe serverul de la distanță:
Pentru a copia fișiere de pe un server de la distanță pe computerul local. În mod implicit, rsync utilizează SSH pentru comunicarea securizată. Puteți specifica în mod explicit SSH cu:
rsync -avz -e ssh /local/directory/ user@remote_host:/remote/directory/
Dacă SSH utilizează un port care nu este implicit (de exemplu, 2222), specificați-l astfel:
rsync -avz -e "ssh -p 2222" /local/directory/ user@remote_host:/remote/directory/
Pentru a șterge fișierele suplimentare din destinație care nu sunt prezente în sursă:
Primul pas este să adăugăm fișiere suplimentare în terminalul PuttySSH:
cd /home/user/test_backup/
touch file1.txt file2.log file3.jpg
mkdir extra_files
touch extra_files/file_vechi.txt
Acum sincronizați directorul fără anumite fișiere, iar rsync va șterge fișierele care nu mai sunt în sursă:
rsync -av --delete /source/directory/ /destination/directory/
📌 Ce face aceasta?
Toate fișierele care sunt pe server, dar NU în test/local vor fi șterse.
Rezultatul MSYS2
PuttySSH rezultat
Avertisment: Utilizați –delete cu prudență, deoarece elimină permanent fișierele de la destinație.
Pentru a exclude anumite fișiere sau directoare:
rsync -av --exclude 'file_or_directory' /source/ user@remote_host:/destination/
Rezultat MSYS2
PuttySSH rezultat
Pentru excluderi multiple, utilizați:
rsync -av --exclude={'file1','dir1','*.log'} /source/ user@remote_host:/destination/
Puteți rula rsync în fundal utilizând nohup:
nohup rsync -avz /source/ user@remote_host:/destination/ &
Acest lucru permite procesului să continue chiar și după închiderea sesiunii.
În directiva locală am adăugat un nou fișier new_file.txt33333333, apoi am deconectat terminalul PuttySSH, iar comanda de mai sus ne permite să trimitem fișiere chiar și atunci când serverul este deconectat.
Pentru a programa sincronizarea automată utilizând cron, deschideți crontab:
crontab -e
Adăugați un job pentru a rula rsync în fiecare zi la miezul nopții:
0 0 * * * * rsync -avz /source/ user@remote_host:/destination/
rsync este un instrument versatil și puternic pentru sincronizarea și transferul fișierelor într-o rețea. Fie că faceți copii de siguranță ale datelor, oglindiți directoare sau migrați fișiere între servere, rsync oferă o soluție eficientă și fiabilă. Prin valorificarea diverselor sale opțiuni și capacități de automatizare, vă puteți gestiona eficient fișierele în mediile Linux.