tar, backup

Fórumok

Sziasztok!

Szkriptben tar -t használok felhasználók munkakönyvtárainak mentésére.
Minden egyes felhasználó egy tar fájlba kerül.
A munkakönyvtárakat egy hálózati megosztáson (samba) keresztül éri el a szkript.
Mindig csak a változott fájlokat kellene mentenie a szkriptnek,
ezzel szemben vannak napok amikor az összes felhasználó összes állománya
mentésre kerül. Az hogy melyik nap fut le így a mentés az látszólag véletlen szerű.

Munka könyvtárak csatolása:
mount -t cifs //szerver/munka -o username=...,password=...,rsize=130048,wsize=57344,noatime /mnt/munka

Egy könyvtár (user1) mentése:
tar -g user1.diff -czf user1.tar /mnt/munka/user1 &> /dev/null

Valakinek valami ötlete, h miért lehet?

Előre is köszönöm.

Hozzászólások

akkor mar inkabb "rsync -avc", de a "v" nem is kell.

A sima tar sem. :D
Bar o hasznal ott -z kapcsolot is. De minek is? Ha lementi az 1GB-os filet is amiben 1 byte valtozott csak.
Amugy meg rakjon a samba ala egy fuse fs-t ami compress-al es kesz.

Szoval a samba hoston csinal egy konyvtarat, majd fusecompress alatt mountolja, majd rsync -ac. Ennyi. Es nem kell sambat konfigolni, nincs cifs overhead, stb, stb.

Meg amúgy is, mást csinál. Pl. marhára nem mindegy hogy tar összesen két fájlt csinál (és tömörít is közben a -z miatt), az rsync meg ahány, annyit. És a -c miatt végigolvassa az összes fájlt, ami amúgy szerintem jó ötlet (vagy nem, környezettől függ). A tar viszont valami metadatát néz, ami gondolom timestamp, ami vagy jó, vagy nem.

Nálam az úgy megy, hogy mikor teljes mentés van (heti 1X) akkor elmentem a mentés dátumát egy fájlba és utána --newer opcióval megadom a tarnak hogy mikori dátumnál frissebbeket mentse.

--
Rózsár Gábor (muszashi)

Mondjuk az &> /dev/null helyett lehetne &>/dev/null, de még inkább &>log.meg.kellene.nezni

Aha.
Ez valami gnu fícsör, vagy annyira értelmetlen, hogy az utóbbi pár évtizedben elekerülte a figyelmemet. :(

Amire gondoltam:
MkLog()
{
exec 1<&-
exec 2<&-
exec 1>${1}.log
exec 2>${1}.stderr
}

for dir in dir1 dir2 ...
do
( Mklog $dir ; tar czvf $dir.tar $dir ) &
done

Így azért jobban látszik mi történt.

A "--no-check-device" megoldotta a problémát, köszönöm!

Alternatív megoldások is érdekelnek, de a tar -os megoldás elég és kézenfekvő volt.
A munka könyvtárak Linux-on vannak. A menteni kívánt megosztás könyvtárait
kézenfekvő volt a létező (Samba) megosztáson keresztül leszedni. Ha ez
működik, a célnak megfelelő, nem gondoltam más megoldást keresni.
Pár perc alatt lefut az egész, úgy gondolom nem éri meg keresgélnem.
Linux alól más gépről Windows megosztásokból is mentek, így hasonló a
két szkript, nem kell két mentési eljárást kitalálni, dokumentálni.
És nem utolsó szempont, ha valaki kolléga helyettesít annak
sem kell annyit agyalni egy esetleges visszaállítás alkalmával.

Köszönöm, az ötleteket, tippeket.