Aceasta este comanda fssync care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
fssync - Instrument de sincronizare a sistemului de fișiere (unidirecțional, prin SSH)
REZUMAT
fssync -d db -r rădăcină [opțiune...] gazdă
DESCRIERE
fssync este un instrument de sincronizare a fișierelor unidirecțională care urmărește inoduri și menține un
baza de date cu fișiere aflate la distanță, făcându-l capabil să:
· gestionează eficient un număr mare de directori/fișiere
· detecta redenumiri/mutari si hard-links
Acesta urmărește reducerea la minimum a traficului de rețea și sincronizarea fiecărui detaliu al unui sistem de fișiere:
· toate tipurile de inode: fișier, dir, bloc/caracter/fifo, socket, symlink
· păstrează legăturile rigide
· timp de modificare, proprietate/permisiune/ACL, atribute extinse
· fișiere rare
Alte caracteristici:
· poate fi configurat pentru a exclude fișierele de la sincronizare
· fssync poate fi întrerupt și reluat în orice moment, făcându-l tolerant la defecțiuni aleatorii
(de exemplu, eroare de rețea)
· algoritmul de sincronizare a conținutului fișierului este conceput pentru a gestiona fișiere mari, cum ar fi imaginile VM
eficient, prin actualizarea blocurilor modificate de dimensiuni fixe în loc
Utilizarea principală a fssync este de a preveni pierderea datelor în caz de defecțiune hardware, unde este RAID1
nu este posibil (de ex. la laptopuri).
On Btrfs [1] sisteme de fișiere, fssync este o alternativă utilă la Btrfs trimite (Și a primi)
comenzi, datorită capacităților de filtrare. Acest lucru poate fi combinat cu instantanee Btrfs
la destinație pentru o soluție de rezervă completă.
UTILIZARE
Utilizare fssync --Ajutor pentru a obține lista completă de opțiuni.
Cel mai important lucru de reținut este că baza de date locală trebuie să se potrivească exact cu ceea ce este
pe gazda de destinație:
· Fișierele care sunt copiate pe gazda destinație nu trebuie modificate. Și nimic nu ar trebui
fi creat manual în directoarele de destinație. Dacă doriți totuși să accesați date pe
gazdă la distanță, ar trebui să o faceți printr-o montură de legare numai pentru citire (necesită Linux >=
2.6.26).
· Trebuie să aveți 1 bază de date pe destinație, dacă intenționați să aveți mai multe copii ale aceleiași
directorul sursă.
Uita-te la -c opțiune dacă vă întrebați dacă baza de date se potrivește cu directorul de destinație.
Prima rulare a fssync:
· Cea mai ușoară modalitate este de a lăsa fssync să facă totul. Specificați o cale de fișier inexistentă către -d
opțiune și un director de destinație gol sau inexistent (vezi -R opțiune). fssync va
creează automat baza de date și copie toate direcțiile/fișierele pe gazda de la distanță.
· O modalitate mai rapidă poate fi să faci copia inițială prin alte mijloace, cum ar fi o copie brută a unui
compartimentare. Dacă ești absolut sigur că sursa și destinația sunt exact aceleași,
puteţi iniţializa baza de date specificând - ca gazdă. Dacă numerele inodelor sunt aceleași
pe ambele părți, ceea ce este cazul dacă datele au fost copiate la nivel de bloc, puteți modifica
partiția sursă în timp ce inițializați DB pe cea de destinație și reveniți
DB la nivel local.
Un exemplu de wrapper în jurul fssync, cu un filtru, poate fi găsit la exemple/fssync_home
fssync nu coboară niciodată directoare pe alte sisteme de fișiere. Inode mascate de punctele de montare
sunt de asemenea sărite, așa că ar trebui să fie demontate temporar dacă doriți să fie
sincronizate. Același rezultat poate fi obținut prin sincronizarea de pe un suport de legătură.
Consultați și NONE cifru de comutare [2] patch dacă nu aveți nevoie de criptare și doriți
accelerați-vă conexiunea SSH.
CUM IT FUNCȚIONEAZĂ
fssync menține un singur tabel SQLite cu toate direcțiile/fișierele care se află pe partea de la distanță. Fiecare
rândul se potrivește cu o cale, cu inodul său (pe partea locală), alte metadate (pe partea la distanță) și a
verificat steag.
Când rulează, fssync iterează recursiv prin toate direcțiile/fișierele locale și pentru fiecare cale
care nu este ignorat (vezi -f opțiunea), interogează DB pentru a decide ce să facă. Dacă deja
verificat, calea este omis imediat. Când o cale este sincronizată, aceasta este marcată ca
verificat. La sfârșit, toate rândurile care nu sunt verificat corespunde unor căi care nu există
mai mult. Odată ce sunt șterse de la distanță, toate verificat steagurile sunt resetate.
Eșec toleranță
De fapt, fssync nu necesită ca baza de date să se potrivească perfect cu destinația. Aceasta
tolerează unele diferențe pentru a recupera orice sincronizare întreruptă cauzată de a
eșec de rețea, o eroare de funcționare a fișierului sau orice altceva decât o blocare a sistemului de operare
a gazdei locale (sau ceva similar, cum ar fi o pană de curent).
În cele mai multe cazuri, acest lucru este făcut de gazda la distanță, care creează (sau suprascrie) automat
un inod de tipul așteptat dacă este necesar. Singura excepție este că telecomanda va
nu ștergeți niciodată un director care nu este gol pe cont propriu. Pentru majoritatea cazurilor complexe, fssync jurnalizează
operațiunea în baza de date: în caz de eșec, fssync se va putea recupera pe următorul
sincronizare
Rasă Condiții
O condiție de cursă înseamnă că alte procese de pe gazda locală modifică inoduri care
fssync se sincronizează. fssync gestionează orice fel de condiție de cursă. De fapt, fssync are
nimic de făcut în majoritatea cazurilor.
Când are loc o condiție de cursă, fssync nu garantează că datele de la distanță se află în a
stare consistentă. Fiecare sincronizare remediază întotdeauna inconsecvențele existente, dar poate introduce
altele, deci fssync nu este potrivit pentru backup la cald a bazelor de date.
Cu Btrfs, puteți obține consistență prin instantanee din partea sursă.
SIMILARE PROIECTE
Ideea de a menține o bază de date locală vine de fapt csync2 [3]. eram pe cale să
adoptă-l când mi-am dat seama că chiar am nevoie de un instrument care detectează mereu redenumiri/mutări ale
fișiere mari. De aceea văd fssync ca o rescrire parțială a csync2, cu urmărirea inodelor și
fără sincronizare bidirecțională. Baza de date locală realizează fssync și csync2
mai repede decât binecunoscutul rsync [4].
Utilizați fssync online folosind serviciile onworks.net