Tema: Re: failų sinchronizavimas/backupavimas
Autorius: Laimis
Data: 2013-09-09 15:39:31
rembo rašė:
> Reikia pasibackupinti nuotraukų katalgą (keliasdešimt gigų) iš vieno
> kompo į kitą, kurie tarpusyvje neturi jokio ryšio (nei per LAN, nei per
> interentą) tai darau su USB flešiuku.
>
> Ar yra kažkokia programa, kuri backupo failų aprašus saugo faile (failų
> dydžiai, checksumai, sukūrimo datos, vardai, ir t.t.). Po to pagal šį
> aprašą surandamos albume naujos/modifikuotos nuotraukos, jos
> analogiškoje katalogų medžio struktūroj nukopijuojamos į laikmeną (pvz
> USB flešiuką), po to pats rankutinėm nusikopinu nuotraukas į backupą, ir
> vėl atsinaujinu backupo failų aprašą.

Yra net keletas variantų (nebūtinai gerumo ir patogumo eiliškumu; teks 
skaityti iki galo :-)).

1) Disk ARchive (su DarGUI):
http://dar.linux.free.fr/
http://dargui.sourceforge.net/

Pasidarai katalogo meta katalogą (dar terminais — izoliuotąjį katalogą, 
be duomenų), kuris yra mažas.

Vėliau gali daryti diff (skirtumų) backup'us, remdamasis šiuo 
izoliuotuoju/meta katalogu ar kitais diff archyvais.

Komandinėje eilutėje tai atrodo maždaug taip:

Pirminis meta katalogas:
 > dar -c cat_meta -A + -R /path/to/backup/cat

arba full backup'as su meta katalogu:
 > dar -c cat_full -@ cat_meta -R /path/to/backup/cat


Pirmasis diff  backup'as (meta katalogo ar full backup aržvilgiu):
 > dar -c cat_diff -A cat_meta -@ last_meta -R /path/to/backup/cat
arba:
 > dar -c cat_diff -A cat_full -R /path/to/backup/cat


Paskesni diff backup'ai (paskiausio meta katalogo ar paskiausio diff 
archyvo atžvilgiu):
 > dar -c last_diff -A last_meta -@ last_meta -R /path/to/katalogas
arba:
 > dar -c last_diff -A last_diff -@ last_meta -R /path/to/katalogas


Pritaikyti (kitame gale) diff backup'ą:
 > dar -R /path/to/sync/cat -x last_diff


Su DarGUI — paprasčiau, nors neradau, kaip padaryti meta/izoliuotąjį 
katalogą (nedarant full backup archyvo) iš katalogo.


2) DirSyncPro (tik jei su tampoma media nešiojiesi visą backup'ą; 
patogiai padaro mirror'ą ir atitinkamai sinchronizuoja kitame gale tik 
tai, kas skiriasi):
http://www.dirsyncpro.org/


3) DVCS: mercurial, git, bazaar. T.y. versijų kontrolės soft'as. Idėja — 
paprasta: pakeitimai fiksuojami žurnale ir į kitą galą gali būti 
perduodami diff (tik pakeitimų) paketu. GUI su mercurial — TortoiseHg:
http://tortoisehg.bitbucket.org/

Komandinėje eilutėje:

Repozitorijos sukūrimas/inicializavimas:
 > hg init

Failų/katalogų pridėjimas į repozitoriją:
 > hg add file1 file2 ... *

Pridėtų failų fiksavimas:
 > hg commit -m "initial"

Nuklonuoti visą repozitoriją su failų turiniu (pradiniam pernešimui į 
kitą galą):
 > hg clone src dst

<Pakeitimai: naujai pridėti, keisti failai...>

 > Pasižiūrėti, kas buvo keista, pakito:
 > hg status

Pakeitimų fiksavimas/išsaugojimas repozitorijoje
 > hg commit -A -m "changes"


Pasižiūri (ar spėji), kokia paskiausia revizija yra kitame (dst) gale:
 > hg tip

Tada suformuoji pakeitimų nuo tos revizijos/versijos paketą šitame (src) 
gale:
 > hg bundle --base {REV} bundle.hg

Perneši jį ir pritaikai (permeti) kitame gale:
 > hg unbundle bundle.hg

Su GUI — paprasčiau. Su git'u — greičiau (aktualu, jei pasirodys lėta; 
pirminis keliasdešimties GB failų pridėjimas bus ILGAS)
Svarbu: bet kokie pakeitimai iš tikrųjų kauptųsi repozitorijoje (saugomi 
būtų ir pašalinti, modifikuoti failai ir visos pakeitimų versijos; bet 
kada būtų galima juos atstatyti į tam tikrą jų versiją). Tai dažnai yra 
privalumas, nors turi disko vietos kainą: visa repozitorija užimtų bent 
2x tiek, kiek užima patys failai, jei nuotraukų dažnai/masiškai 
neredaguotum, o tik pridėtum naujas.


4) CleanSync:
http://code.google.com/p/cleansync/


5) Areca Backup (incremental backup'ai zip'uose):
http://www.areca-backup.org/


Na, veikiausiai yra ir kitų sprendimų, bet jau reikės pačiam 
pagoogle'int pradedant kad ir nuo čia:
http://en.wikipedia.org/wiki/Comparison_of_file_synchronization_software