Pred nejakym casem jsem take koukal na udev a jestli si pamatuji dobre, tak jsem nekde videl zminku ze skript spousteni pomoci RUN by nemel bezet dlouho protoze udev je behem behu pauznuty:
Zminka je ve tretim odstavci. Nikdy jsem se nedostal k tomu si s tim hrat, takze nemam zadne zadne prakticke zkusenosti, ale myslim ze za zminku to stoji.
myslím, že ne, kdysi jsem si s tím hrál a nějak to nechtělo takto fungovat. Vyřešil jsem to tehdy napsáním skriptíku, který nedělal nic jenom čekal na případnou zprávu od udevu (prostě koukal na pojmenovanou rouru). Udev místo spouštění nějakého skriptu pouze zapsal do této pojmenované roury nějaké heslo, tím se probudil ten můj skriptík a provedl požadovanou akci… krkolomné, ale v té chvíli funkční…
Dalo se to napsat trochu lip, nicmene dekuji za informaci, myslel jsem, ze [ je v bashi taky builtin.
Ovsem nemate uplnou pravdu – prinejmensim v Debianu Lenny jsou „[“ a „test“ dve nezavisle binarky, ktere se navzajem nijak nevolaji ;-).
$ ls -l /usr/bin/[ /usr/bin/test
-rwxr-xr-x 1 root root 34504 2008–04–04 16:22 /usr/bin/[
-rwxr-xr-x 1 root root 22852 2008–04–04 16:22 /usr/bin/test
$ strace -e file,process [ -d /bin/bash ]
execve(„/usr/bin/[“, [„[“, „-d“, „/bin/bash“, „]“], [/* 20 vars */]) = 0
access(„/etc/ld.so.nohwcap“, F_OK) = –1 ENOENT (No such file or directory)
access(„/etc/ld.so.preload“, R_OK) = –1 ENOENT (No such file or directory)
open(„/etc/ld.so.cache“, O_RDONLY) = 3
access(„/etc/ld.so.nohwcap“, F_OK) = –1 ENOENT (No such file or directory)
open(„/lib/i686/cmov/libc.so.6“, O_RDONLY) = 3
open(„/usr/lib/locale/locale-archive“, O_RDONLY|O_LARGEFILE) = 3
stat64(„/bin/bash“, {st_mode=S_IFREG|0755, st_size=700492, …}) = 0
exit_group(1) = ?
$ strace -e file,process test -d /bin/bash
execve(„/usr/bin/test“, [„test“, „-d“, „/bin/bash“], [/* 20 vars */]) = 0
access(„/etc/ld.so.nohwcap“, F_OK) = –1 ENOENT (No such file or directory)
access(„/etc/ld.so.preload“, R_OK) = –1 ENOENT (No such file or directory)
open(„/etc/ld.so.cache“, O_RDONLY) = 3
access(„/etc/ld.so.nohwcap“, F_OK) = –1 ENOENT (No such file or directory)
open(„/lib/i686/cmov/libc.so.6“, O_RDONLY) = 3
open(„/usr/lib/locale/locale-archive“, O_RDONLY|O_LARGEFILE) = 3
stat64(„/bin/bash“, {st_mode=S_IFREG|0755, st_size=700492, …}) = 0
exit_group(1) = ?
Asi tak. Kdyz uz se v clanku o zalohovani objevi vyrazy RAID1/5/6 apod, tak by v nem melo byt vzapeti zdurazneno, ze RAID neni totez co zalohovani. RAID resi redundanci resp. nepretrzitou dostupnost sluzeb resp. dat v pripade kolapsu disku. Zalohovani resi obnovu dat v pripade jejich ztraty ci poskozeni (kde kolaps disku je pouze jedna z moznych pricin, a pravdepodobne ne nejcastejsi – casteji se jedna spis o chybu uzivatele ci administratora; a takovych moznych pricin jsou mraky). Navic rozumne zalohovaci reseni pocita is verzovanim a drzi nekolik verzi meneneho souboru nazpet, coz RAID opet nijak neresi (ani to z principu resit nemuze).
Já s výhodou využívám při programování i psaní obyčejných textů Git, kde si jednoduše nastavím dva repozitáře proti sobě, které vzájemně synchronizuju. Má to výhodu, že si tím ukládám kompletní historii a kopíruju si ji na druhý stroj. Když seženu třetí stroj, budu mít tři paralelní kopie a moje paranoidní já bude zase trošku klidnější.
Git je dobry pro zdrojaky a podobne male soubory a soubory co se moc nemeni(fotky, hudba), ale treba nejakou Virtualbox image bych mu necpal, protoze pri zmene souboru vytvari tusim jeho plnou kopii a tedy požírá více místa na disku. Na druhou stranu je to i výhoda, protože když se u rozdílového zálohování posere rozdílový soubor se zmenovymy vektory tak je to hodne spatny.
Docela mne pobavilo, že přesně tento problém jsem řešil 2 dni dozadu a nakonec jsem dokonvergoval k nasledujícímu řešení pomocí duply, což je nadstavba jiného inkrementálního řešení duplicity:
http://www.nax.cz/2010/03/25/encrypted-laptop-backups-using-duply/
Na zalohovacim stroji pouzivam zfs on fuse. Mam jeden pool se dvema disky (raid1, to umi zfs samo o sobe). Vytvorim na zfs adresar /mnt/zalohy/stroj1, a spustim z cronu kazdej den
zfs snapshot mnt/zalohy/stroj1@2010–03–26
rsync -aqhz –progress -e ssh root@stroj1:/mnt/zalohy/stroj1 –delete
na zfs mam aktivovanou kompresi a deduplikaci. Celkem jednoduchy a efektivni.