Transferul de fișiere în Linux este o sarcină obișnuită pe care fiecare administrator de sistem ar trebui să o cunoască, în special atunci când transferă fișiere între sistemele locale sau la distanță prin intermediul rețelelor.
Linux oferă două instrumente foarte populare pentru acest scop: SCP (Secure Copy) și Rsync. Cele două asigură o modalitate sigură și simplă de a transfera fișiere între mașini locale sau la distanță.
În acest articol, vom explora modul de utilizare a comenzilor SCP și Rsync pentru a transfera fișiere, acoperind atât transferurile de fișiere locale, cât și cele la distanță.
Noțiuni despre scp (Secure Copy Protocol)
Comanda scp este un program în linia de comandă utilizat pentru a copia în siguranță fișiere și directoare între două gazde utilizând SSH (Secure Shell), ceea ce înseamnă că datele sunt transferate într-un mod criptat în timpul transferului prin internet.
Sintaxa de bază pentru utilizarea scp este următoarea:
1 | scp [options] source_file destination |
Explicația comenzii este:
- source_file: fișierul sau directorul pe care doriți să îl copiați.
- destination: locația în care doriți să copiați fișierul sau directorul.
Copierea locală a fișierelor
Dacă doriți să copiați un fișier dintr-un director în altul pe aceeași unitate, puteți utiliza:
1 | scp ~/backup.tar.gz /tmp |
Copierea fișierelor pe un server la distanță
Pentru a copia fișiere de pe un calculator local pe un server la distanță, va trebui să menționati adresa IP a serverului și calea de destinație.
1 | scp ~/backup.tar.gz linuxpedia@192.168.1.100:/home/linuxpedia |
Copierea fișierelor de pe un server de la distanță
Pentru a copia un fișier de pe un server de la distanță pe un calculator local, este suficient să inversați sursa și destinația:
1 | scp linuxpedia@192.168.1.100:/home/linuxpedia/backup.tar.gz /tmp |
Pentru a copia un întreg director, utilizați opțiunea -r (care înseamnă recursiv):
1 | scp -r ~/tecmint /tmp |
Noțiuni despre rsync
Comanda rsync este un alt instrument pentru linia de comandă utilizat pe scară largă pentru transferul de fișiere, având rolul de a transfera fișiere și directoare între sursă și destinație, fiind de obicei utilizat pentru sincronizarea directoarelor.
Sintax de bază pentru utilizarea rsync este:
1 | rsync [options] source destination |
Transfer local de fișiere
Pentru a transfera fișiere sau directoare la nivel local, puteți utiliza rsync cu opțiunea -a pentru a activa modul arhivă, care păstrează permisiunile, proprietatea și marcajele temporale.
Opțiunea -v reprezintă verbose, care arată progresul transferului de fișiere.
1 | rsync -av ~/myfolder /backup |
Transfer de fișiere către un server la distanță
Pentru a transfera fișiere către un server la distanță, rsync utilizează SSH în mod implicit, aici trebuie să specificați adresa IP și locația serverului.
1 | rsync -av ~/myfolder linuxpedia@192.168.1.100:/home/linuxpedia |
Comanda de mai sus va transfera directorul myfolder pe un server de la distanță, iar dacă executați comanda din nou, rsync va copia numai fișierele care au fost modificate sau fișierele noi.
Transfer de fișiere de pe un server
Pentru a transfera fișiere de pe un server de la distanță pe un calculator local, utilizați:
1 | rsync -av linuxpedia@192.168.1.100:/home/linuxpedia/myfolder /backup |
Sincronizarea directoarelor cu rsync
Unul dintre punctele forte ale rsync este capacitatea sa de a sincroniza directoare, ceea ce înseamnă că puteți menține două directoare sincronizate, indiferent dacă se află pe aceeași mașină sau pe mașini diferite.
De exemplu, pentru a sincroniza un directoar local cu un director la distanță trebuie să folosiți:
1 | rsync -av /local/directory/ linuxpedia@remote_host:/remote/directory/ |
Pentru a sincroniza un director de la distanță cu un director local, ar trebui să inversați sursa și destinația:
1 | rsync -av linuxpedia@remote_host:/remote/directory/ /local/directory/ |
Dacă transferul este întrerupt din cauza unei probleme a rețelei sau din alte motive, îl puteți relua folosind opțiunea –partial, care permite reluarea transferului de fișiere de unde a fost întrerupt.
1 | rsync -av --partial /path/to/source linuxpedia@remote_host:/path/to/destination |