Sziasztok!
Követekező kérdéssemmel fordulok hozzátok:
Differenciális mentést szeretnék készíteni egy mappáról a tar parancs segítségével. Mivel a mentésemet egy külső tárhelyre szeretném tenni, ezért titkosítani is szeretném, ezért célszerűnek látom "betarolni" a mentendő mappámat. Inkrementális mentést tudok vele készíteni, de jó sok google-zés után sem találtam számomra működő megoldást a differenciálissal kapcsolatban, holott több helyen is olvastam róla, hogy ez működik.
Építő jellegű válaszaitokat előre is köszönöm!
- 8063 megtekintés
Hozzászólások
első mentés:
tar c ...
touch MENTES
későbbi mentések:
tar c --newer-than MENTES ...
touch MENTES
Nincs túlbonyolítva, meg nem oldja meg azt, ha valamit pont az egyik mentés közben módosítasz (az adott fájl már le van mentve, de a mentés még nem végzett). Szóval nem kifejezetten szofisztikált de első közelítésre jó.
(Szerk: így első ránézésre olyan, mintha ilyen jellegű "newer" funkció a GNU-tar-ban nem létezne, csak a FreeBSD-féle tar-ban. De fenti több-kevesebb macerával átültethető gtar-ra is.)
- A hozzászóláshoz be kell jelentkezni
Működik is, bár tényleg nincs --newer-than kapcsolóm.
~# tar -c --newer="2013-02-14 21:00" --file mentes-diff-teszt/3.tar diff-teszt/
Viszont (vagy én csinálok valamit rosszul?) ebben az esetben nem veszi figyelembe, ha törlődnek bizonyos file-ok. Esetleg meg kell adjak egy file nevet, amiben vezeti a változásokat, mint a -g kapcsolónál inkrementális mentés esetében? Vagy használjak más programot mentésre (a lényeg az, hogy a differenciákat más mappába helyezze, ne pedig a full backupomat írja felül)?
Köszönöm a segítségedet!
- A hozzászóláshoz be kell jelentkezni
-N, --newer, --after-date DATE-OR-FILE
only store files newer than DATE-OR-FILE
--newer-mtime=DATE
compare date and time when data changed only
A differenciálra vonatkozó kérdésed nem értem, lehet hogy nem olvastam el elég figyelmesen. Azok a fájlok, amik közben törlődtek, nem lesznek benne de ez így jó is. A full backupodat miért írnád felül a diff. mentéssel?
Mindenféle extra nélküli megoldás.
cron.weekly = fullbackup.sh -> /backup/full/[DÁTUM(pl.2013-01-16)].tar.gz
cron.daily = diffbackup.sh -> /backup/diff/[NAPNEVE(pl.Monday)].tar.gz
Backup visszaállítása:
- full kicsomagol
- fájlok összehasonlít, ha nem létezik a diff-ben, töröl
- diff kicsomagol, létezőt felülír
\o\ |o| /o/
- A hozzászóláshoz be kell jelentkezni
fájlok összehasonlít, ha nem létezik a diff-ben, töröl
szerintem nem jó meglátás, az a fájl se létezik az inkrementális archívumban, ami nem valtozott a full archiválás óta, azt pedig nem kell törölni az eredeti állapot visszanyeréséhez.
- A hozzászóláshoz be kell jelentkezni
Jogos a két pont, ez így tényleg nem jó. Muszáj generálni egy listát az összes fájlról ami létezik a mentés időpontjában és ettől függetlenül menteni a változott fájlokat is. Én tudatlanként egy sima plaintext listát generálnék de biztos lehet valamilyen db szerű formátumba is. Tehát helyesen:
- full backup kicsomagol
- fájlokat végignéz, ha nincs a fájl a fenti megfelelő dátumú fájlistán, akkor töröl
- diff rácsomagol
\o\ |o| /o/
- A hozzászóláshoz be kell jelentkezni
én a kicsomagolás + némelyek törlése methódust nem alkalmaznám a felesleges erõforráshasználat miatt.
inkább:
1:
for file in full.tgz inc*.tgz; do
while read filename; do
tar xvzf $file -C ./ahova_ki_kell_csomagolni/ "$filename"
done < ./ezeket_kell_kicsomagolni.txt
done
ez szintén erõforrásigényesebb a kelleténél, mert többször nyitja meg az archívum fájlokat.
2:
generálunk egy listát a törölt fájlokról az inkrementális archivalások elõtt:
for file in full.tgz inc*.tgz; do
tar tf $file | while read filename; do [ ! -e "$filename" ] && echo "$filename"; done
done | sort -u > ./torolt_fajlok.txt
és restore-nál megadjuk a feketelistát a tar-nak:
(úgy látom, sajnos fehérlistát nem kezel)
for file in full.tgz inc*.tgz; do
tar xvzf $file -C ./ahova_ki_kell_csomagolni/ -X ./torolt_fajlok.txt
done
- A hozzászóláshoz be kell jelentkezni
A tar kezel feherlistat. Szimplan megadod a kicsomagolo parancs vegen a megfelelo falneveket.
tar xzf archivum.tgz ezt meg/ezt csoma/gold/ki
- A hozzászóláshoz be kell jelentkezni
való igaz, de csak lista fájlban gondolkodtam, mert ugyan nem tudom az egyéb körülményeket, de könnyen elõfordulhat, hogy hosszabb a kicsomagolandló fájlok neve útvonallal, mint amennyit a shell be tud venni.
- A hozzászóláshoz be kell jelentkezni
ja bocsánat, kezel fehérlistát :)
akkor archiválás során fehérlistát generálunk:
find ./archivalando -print0 > ./letezo-fajlok.txt
tar cvzf inc${cnt}.tgz -T ./letezo-fajlok.txt
restore-nál csak ezt kell megadni
for file in full.tgz inc*.tgz; do
tar xvzf $file -T ./letezo-fajlok.txt
done
azért mentségemre szóljon, hogy az exclude listát soralapú fájlként várja,
az include listát meg null-terminated sztringekként.
- A hozzászóláshoz be kell jelentkezni
Vasárnap éjfélkor? :) Lájk.
\o\ |o| /o/
- A hozzászóláshoz be kell jelentkezni
poorman's midday :)
- A hozzászóláshoz be kell jelentkezni
Szerintem félre értettük egymást. Következő gondom van ezzel a megoldással: amikor készítek a full backupomról egy diff. mentést, akkor azokat menti, amik újak (természetesen ez a cél), de amit a felhasználó törölt a könyvtárából, azok ugyanúgy visszaállítódnak, mert a full backupban ki lett mentve. Így az ügyfél egy időpontra való visszaálláskor jogosan teszi fel azt a kérdést, hogy mit keresnek itt ezek a fileok, mikor én ezeket már régen kitöröltem. Vagy rosszul gondolom?
- A hozzászóláshoz be kell jelentkezni
find MENTENI --newer MENTES > menteslista.lst
tar -cvz -f mentesem.tgz -T menteslista.lst --no-recursion
A menteslista.lst -ben a könyvtárak is szerepelnek, viszont a tar-nak a könyvtár tartalmát nem kell mentenie automatice, ezért a --no-recursion
- A hozzászóláshoz be kell jelentkezni
GNU Tar esetén ez is működik:
Első mentés:
tar -g /root/backup/etc-incremental-tar-magic -cpj /etc/ |
gpg -e -r user1 -r user2 -r userN > $data/etc-initial-`date +%Y-%m-%d-%s`.tar.bz2.gpg
Inkrementális mentések esetén a fenti parancsot ismételni kell.
Ismételt backuphoz pedig a rm magic-file
után full backup lesz és újra létrejön a state tracker file.
- A hozzászóláshoz be kell jelentkezni
+1
magam is így szoktam
azt a magic-ot snarnak hívják, nem?
- A hozzászóláshoz be kell jelentkezni
és csak félig differenciális, azaz csak inkrementális, mert a tar extract nem töröl fájlokat.
tehát ha kicsomizod, az egyes archiválások után törölt fájlok is ott lesznek.
- A hozzászóláshoz be kell jelentkezni
van a -G opció kicsomagoláshoz, ez törli is a fileokat.
tar xzGf full.tgz
tar xzGf incr1.tgz
tar xzGf incr2.tgz...
Én úgy csinálom, hogy minden vasárnap generálódik egy új könyvtár, ezáltal nem lesz ott .snar file, tehát full mentés hetente 1x, és közben akárhányszor ráindítom a mentést, az előzőhöz képest mennek le a változások.
Lehet trükközni, hogy a full mentés utáni .snar file-ot használod mindig referenciának, és akkor a következő mentések mindig a full-hoz viszonyulnak, így egy kicsit könnyebb visszaállítani, viszont több helyet foglal.
- A hozzászóláshoz be kell jelentkezni
Szerk: nem olvastam el elég figyelmesen mit is kérdeztél. Mea culpa.
- A hozzászóláshoz be kell jelentkezni
Nem kifejezetten tar, de a tar-t használja: duply
- A hozzászóláshoz be kell jelentkezni
Köszi a tippet nagyon jó kis program, gyakorlatilag mindent tud, ami nekem kell, de sajnos ez is inkrementálisan ment.
- A hozzászóláshoz be kell jelentkezni
duplicity. Szinten tart csinal, kepes inkrementalis, differencialis mentesre, es helybol tamogatja a mentes GPG-vel torteno titkositasat.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
+1
Illetve DAR is szóba jöhet.
- A hozzászóláshoz be kell jelentkezni
Kicsit off.
Miért kell feltétlenül a differenciális mentés? Illetve miért jobb, mint pl. az inkrementális? Csak azért, mert egy mentésből visszaállított könyvtárban benne van egy régebben törölt fájl a kissebbik rossz, mintha pl. tőlem már kérték, hogy egy hónappal ezelőtt törölt fájlt állitsak vissza. Mivel nálam alap a több hónapra visszamenő inkrementális mentés, ezért ez nem volt gond. Mindig elmondom az ügyfélnek, hogy mit meddig tudunk visszaállítani, ehhez tartjuk magunkat.
- A hozzászóláshoz be kell jelentkezni
Én abból indulok ki, hogy ha például visszamentésnél 30 inkerementumom van, akkor az összeset le kell húzzam hozzá és ráereszteni a full backupra. A másik, ha én egy hétig vállalom a visszaállítást, akkor differenciálnál nyugodt szívvel törölhetem az elavult változásokat. Nekem kényelmesebbnek tűnik így eljárni, de elfogadom az ellenvéleményeket.
- A hozzászóláshoz be kell jelentkezni
Ha jo mento eszzkozod van, akkor nem kell tudnod arrol, hogy ki mit mikor huz le. En peldaul a duplicitynel csak megadom, hogy melyik fajl mikori allapotat allitsa helyre, o kitalalja, hogy melyik inkrementalis/differencialis/full mentest fogja lehuzni, kicsomagolni, es helyreallitani, nekem meg csak eszembe se kell jusson elgondolkodni rajta.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Igen, pont ez az. Hányszor kellet használnod a teljes visszaállítást? Nekem még az elmúlt 1X év alatt egyszer sem, szerencsére. De olyan, hogy egy véletlenül, vagy szándékosan törölt fájlt állítsak vissza, az már többször is. Differenciális mentésnél ezt a lehetőséget feláldozod, hogy egy esetleges full recovery esetén nyerjél pár percet, órát. Persze simán lehet ez napok is, de gondolom ilyen esetekben nem a tar-ral bűvészkedünk.
- A hozzászóláshoz be kell jelentkezni
Lehet tarral is buveszkedni, pl a a duplicityben pont az a csodalatos, hogy csak a megfelelo mentes megfelelo koteteit banyassza le a halorol, hogy a kert fajlt eloallitsa (nyilvan ha kotethataron van a fajl, akkor ket kotetet szed le, ha nem, akkor csak egyet)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Most már megnézem magamnak :)
- A hozzászóláshoz be kell jelentkezni
Ha már elkanyarodtunk a tar-tól, akkor a duplicity helyett inkább rdiff-backup. Kb. fél éve váltottam rá, mert a duplicity backendek közül több egyáltalán nem működött, ami meg igen (ftp), az meg megbízhatatlan volt, ha interneten keresztül, és nem lanon kellett átzavarni.
- A hozzászóláshoz be kell jelentkezni
Milyen disztro, hanyas duplicity? A 0.6.15 elotti duplicityk sajnos bugosak, utana jott be valamikor a paramikos SSH backend, illetve javult egy csomot az rsync backend is. 19-20-21 nekem csont nelkul ment SSH-n es rsync-en at is.
Az rdiff-backupot en nem szeretem oszinten szolva. Semmi baj vele, nekem ellenerzeseim vannak vele kapcsolatban, ennyi.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ubuntu 12.04 a csomagból rakott duplicityvel. Nem emlékszem, hányas verzió, de volt már benne SSH backend, csak ~200G adatnál interneten keresztül egyszer sem sikerült lefutnia, pedig több hétig próbáltam. Az ftp backend hellyel-közzel működött, kínomban csináltam egy vpn-t, és az felett használtam ftp-vel. De azért 10 alkalomból 3-szor az ftp-nek is sikerült megállnia. Amióta rdiff-backupot használok (ssh felett), mindössze egyszer nem futott le a mentés, amikor egy költözés után elfelejtettem hozzáadni az ssh kulcsot ahhoz a userhez, aki a túloldalt fogadja az adatokat.
Azt viszont el kell ismerjem, hogy a gpg-vel titkosítás / csak a kliens oldalon olvasható archívum hiányzik az rdiff-backupból. Hiába ment az ember titkosított fájlrendszerbe, az nem ugyan az.
- A hozzászóláshoz be kell jelentkezni
Ezert mondtam, hogy szamit a verzio. A regebbi duplicity-k kozvetlenul az ssh programmal kommunikaltak pexpect-tel, az ujak pedig mar egy nativ pythonos implementaciot hasznalnak, ami sokkal stabilabb es sokkal masszivabb, nem hal meg. A pexpectes nekem is lutri volt, hogy lefut/nemfut, de amiota a paramiko backendest hasznalom, azota nincs gondom vele. Tisztabb, szarazabb, biztonsagosabb. :-)
Mi mondjuk nem hasznalunk gpg titkositast, de igen, a duplicitynek ez a legnagyobb elonye.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni