tar inkrementális mentés

Fórumok

Van egy elég nagy könyvtáram, amiről tar-ral szeretnék inkrementális mentést csinálni. A könyvtár egy másik szerveren van, így cifs-sel van felcsatolva ro-ban a backup idejére.
A probléma az, hogy ha magát a mountpointot adom meg tar-nak, akkor a differenciálisnál is ugyanúgy lementi az egészet, mert mindegyik könyvtárra azt látja, hogy "Directory renamed". Ha akármelyik alkönyvtárát adom meg, tökéletesen megy. Lehet ezt valahogy orvosnolni?

full mentés:
tar -czf /mnt/backup/full.tar.gz -g /mnt/backup/full.tar.gz.snar /mnt/share

diff mentés:
tar -czf /mnt/backup/diff1.tar.gz -g /mnt/backup/full.tar.gz.snar /mnt/share

Így a diff1.tar.gz-be sajnos ugyanígy beteszi az egészet. De pl ez tökéletesen megy (ugyanígy bármelyik alkönyvtárral):
tar -czf /mnt/backup/full.tar.gz -g /mnt/backup/full.tar.gz.snar /mnt/share/Autó
tar -czf /mnt/backup/diff1.tar.gz -g /mnt/backup/full.tar.gz.snar /mnt/share/Autó

Ötlet?

Hozzászólások

Ez talán?
tar -czf /mnt/backup/diff1.tar.gz -g /mnt/backup/full.tar.gz.snar /mnt/share/*

http://www.linuxquestions.org/questions/linux-software-2/gnu-tar-listed…
Ok, The problem the whole time was that both rdup and tar --listed-incremental detect every file on the cifs mount as being a new file. The reason for this is that the device number would change due to the automount. Tar has an option to get around this but it wasn't doing the trick. The temporary inode numbers being given to the mounted filesystems was the cause, they were being reassigned every time they were read. To get around this mount your cifs share with the "serverino" option.
server:share mountpoint cifs rw,mand,credentials=credential_file,serverino 0 0
That causes the windows machine to assign inode numbers to the files before cifs gets them, and thus they do not get reassigned. However, the windows server must support this and windows servers after 2000 do.

https://unix.stackexchange.com/questions/124531/linux-tar-listed-increm…
Lényeg: használj 'star'-t GNU tar helyett

Csak tippelem, hogy az a bibi, hogy a vnode alapján dolgozik, és a csak a mentés idejére felcuppantott könyvtárnál ez változik. Próbáld meg felcsatolni, majd lementeni, és mégegyszer lementeni úgy, hogy közben nem csatolod le/vissza.

Akkor felírhatjuk a jegyzetek közé, hogy a tar inkrementális mentése nem útvonal és fájlnév, hanem vnode alapon működik - az általad elvárt működéshez garantáltan(!) felcsatolva kell lennie a távoli könyvtárnak a teljes mentések közötti időszakban, vagy pedig más, útvonal/fájlnév/tartalom alapján működő megoldás után kell nézned.

En ennel sokkallta primitivebb modon oldottam meg anno: siman egy find -mdays -1, es nesze. Amelyik file tenyleg valtozott, annak a datuma is valtozott.

Én az rsync-kel mindig ugyanabba a rögzített BACKUPDIR-be szinkronizálok, majd rögtön utána a cp-val, a hardlinkes opcióval egy külön INCRDIR-be másolok:
cp -alf ${BACKUPDIR} ${INCDIR}

Az INCDIR lehet például ilyen, napi mentés esetén: INCDIR=$(date +%Y-%m-%d.backup)

Így ugyan nem lesznek tömörítve a mentések, de ha nincs túl sok változás, akkor a hardlinkek miatt kezelhető a mennyiség.
A helyfoglalás ellenőrzésére:
du -chs ${BACKUPDIR} incr_dir1 incr_dir2

--
eutlantis