rsync

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
rsync
software
Tip Backup
Dezvoltator Wayne Davison
Data primei versiuni 19 iunie 1996
Ultima versiune 3.2.3 (6 august 2020)
Sistem de operare Multiplatform
Limba C.
Licență GPL
( licență gratuită )
Site-ul web rsync.samba.org/

În informatică, rsync este un software pentru Unix care sincronizează fișiere și foldere de la o locație la alta minimizând transferul de date folosind codificarea delta ori de câte ori este posibil.

O caracteristică importantă a rsync care nu se găsește în programe / protocoale similare este că oglindirea are loc printr-o singură transmisie de date pentru fiecare direcție de comunicație.

rsync poate copia sau vizualiza conținutul directorului și copia fișiere, opțional folosind compresia și recursiunea datelor . În mod implicit, rsync copiază printr-o conexiune TCP pe portul 873.

Descriere

Algoritm

Algoritmul folosit de rsync pentru a transmite în mod eficient date (de obicei conținutul unui fișier) către un alt computer care are o versiune mai veche a acelorași date a fost inventat de programatorul australian Andrew Tridgell și este descris pe scurt mai jos.

Receptorul își rupe copia fișierului în blocuri adiacente de dimensiuni fixe , și pentru fiecare dintre blocuri calculează două sume de control : funcția hash MD5 și adler-32 (o sumă de control ciclică ). Ambele valori sunt trimise expeditorului.

În schimb, expeditorul calculează suma de control pentru toate blocurile de lungime posibile a versiunii sale a fișierului, chiar suprapuse. Calculul se poate face eficient datorită unei proprietăți a sumei de control ciclice: fie suma de control ciclică a blocului care merge de la octet pe octet , asa de depinde doar de și de la valoarea octeților la poziții Și , fără a fi nevoie să revizuiți octeții de la la . Pentru mari, economiile sunt considerabile.

În acest moment, expeditorul își compară sumele de verificare ciclice cu cele trimise de receptor, pentru a verifica dacă există potriviri. Dacă există, hash-ul MD5 corespunzător (mai scump) este de asemenea calculat și verificat pentru a vedea dacă blocurile sunt de fapt identice. În acest moment, expeditorul trimite către receptor doar părțile din fișier pentru care nu au fost găsite blocuri potrivite, împreună cu instrucțiuni despre cum să reasamblați blocurile existente și piesele noi pentru a obține o copie exactă a fișierului original. Dacă cele două versiuni ale fișierului au mai multe secțiuni în comun, așa cum se întâmplă adesea atunci când se tratează versiuni diferite ale aceluiași fișier, rsync se poate sincroniza prin transmiterea mult mai puține date decât dimensiunea întregului fișier.

Funcționând pe o arhivă comprimată, modificările într-un fișier pe care îl conține se pot ridica la multe și pe scară largă modificări în arhiva comprimată care o conține, necesitând transmiterea mai multor date decât este necesar. Pentru a depăși această problemă, unele programe de compresie oferă o opțiune ( --rsyncable în cazul gzip) care păstrează locația modificărilor chiar și în arhiva comprimată, îmbunătățind eficiența rsync pe astfel de arhive. [1]

Alte caracteristici

Algoritmul descris mai sus stă la baza funcționării rsync, dar aplicația oferă diverse alte funcții utile pentru a optimiza transferul și a simplifica crearea copiilor de rezervă . Printre altele putem menționa utilizarea algoritmilor de compresie pentru a reduce în continuare dimensiunea datelor transferate și suportul pentru protocolul ssh pentru a efectua transferuri criptate, deci sigure. În combinație cu utilitățile UNIX standard, cum ar fi cron , rsync poate fi utilizat pentru a implementa cu ușurință copii de rezervă centralizate ale datelor utilizatorului pe un server central sau un sistem de oglindire a datelor de mari dimensiuni.

Variante

rdiff și rdiff-backup

Există un utilitar numit rdiff care folosește algoritmul rsync pentru a genera un fișier delta care conține diferența dintre două fișiere A și B, în formatul utilizat de rsync. Fișierul delta poate fi apoi aplicat ulterior fișierului A, transformându-l în fișierul B. Operația efectuată este similară cu cea a comenzilor UNIX diff și patch , dar folosind un format mai eficient pentru stocarea diferențelor.

Spre deosebire de diff, crearea fișierului delta durează doi pași: mai întâi este generat un mic fișier de semnătură din A, apoi fișierul de semnătură și B sunt folosite pentru a genera fișierul delta. De asemenea, rdiff funcționează excelent cu fișiere binare, astfel încât diff nu poate fi folosit în schimb.

Folosind rdiff, un alt utilitar numit rdiff-backup menține o copie de rezervă a unui fișier sau director pe un server la distanță, stocând fișierele delta pentru fiecare versiune a datelor stocate. Folosind deltele stocate, starea exactă a datelor poate fi apoi reconstruită la un moment dat.

rsyncX și rsyncXCD

O versiune specială a rsync pentru sistemul de fișiere macOS , rsyncX , transferă, de asemenea, așa-numitele furci de resurse (date suplimentare conținute în fișierele Mac), care nu sunt acceptate de rsync (sau de orice alt program UNIX). Cu Mac OS 10.4, Apple a modificat versiunea sa de rsync pentru a oferi funcționalități similare.

rsyncXCD este o versiune a rsyncX care vă permite să creați partiții de boot .

Interfață grafică

rsync nu are propria interfață grafică, ci doar cea textuală. Cu toate acestea, există programul Grsync , distribuit sub licența GPL , care implementează o interfață grafică pentru rsync. De asemenea, demn de remarcat este proiectul FlyBack care își propune să aducă programul de rezervă Apple Mac OS X 10.5 Leopard Time Machine pe GNU / Linux folosind rsync ca aplicație de copiere a datelor și linkuri pe un singur sistem de fișiere.

Windows

Ca și în cazul altor utilitare UNIX, pentru a rula rsync pe Microsoft Windows trebuie să aveți instalat pachetul Cygwin , care oferă programe cu o emulație de mediu UNIX pe Windows. Există câteva pachete disponibile care includ rsync, cygwin și un program de instalare, făcând rsync accesibil utilizatorilor Windows. Printre alții:

Cu toate acestea, trebuie remarcat faptul că pot apărea mici probleme atunci când se utilizează rsync între mașini cu sisteme de operare diferite, în special în ceea ce privește datele de modificare a fișierelor, precizia cu care sunt transmise unele informații auxiliare despre fișiere (proprietar, drepturi, etc.) și posibile ambiguități între numele de fișier majuscule și minuscule pe Windows.

Notă

  1. ^ GNU Gzip , la gnu.org .


linkuri externe