Sem sci-firől, sem zenekarról nem lesz szó. :-) Történt egyszer, hogy a Bell Labs 1985 - 2002 között elkészített Plan9 néven egy operációs rendszert, amelyet a UNIX utódjául szánt, és házi berkekben be is vezetett.
Az OS érdekessége, hogy hálózaton elosztott fájlrendszert használ, valamint a különféle rendszerkomponensek elérése fájlokon keresztül történik (mondhatnánk, hogy "ahogyan a UNIXoknál és klónjaiknál, és a Linuxnál is", de egy sokkal általánosabb felületet kell elképzelni, ahol mondjuk a diszkek, vagy bármely hardver és a képernyő kezelése ugyanúgy egy hierarchikus fájlrendszerben zajlik, nincs specializált (programozói) felület pl. ioctl), és egy saját fejlesztésű protokoll segítségével elérték a munkaállomás-független munkavégzést (azaz a felhasználónak nem kell tudnia, hogy egy erőforrást a helyi gép, vagy valamelyik távoli szerver bocsát a rendelkezésére). Ezen kívül rengeteg fejlesztést beleöltek, többek között az UTF-8 karakterkezelést is itt valósították meg, de igazából ez a post nem a Plan9-ról szól.
A Plan9 rengeteg ötletet, új elgondolást tartalmazott, és sokan kaptak ebből inspirációt. Például az összes mai "minimalista" window manager Linuxra a 9wm ablakkezelőből fejlődött ki, vagy legalábbis a szerzőjük onnan kapott ihletet. A 9wm pedig a Plan9 window managerének klónja volt. De a fájlrendszer design is sokakat foglalkoztatott, így született meg például a glastree backup projekt is.
Elérkeztünk végre a mai programponthoz... :-)
GlasTree
Ahogyan a weboldalon is írják, a "szegényember napi snapshot gyártója". Nagyon egyszerűen működik: első alkalommal teljes mentést készít, majd pedig csak inkrementális mentéseket a változott fájlokról, azonban minden mentést (snapshotot) külön könyvtárba tárol el, és a nem változott fájlokat hardlinkeli. Azaz egy fájl változás után egyszer ment, majd ha a következő snapshotig nincs változás, akkor csak belinkeli az utolsó változatot. Ezzel helyet spórol, és mégis "teljes" live mentések készülnek minden esetben. Zseniális... Emellett természetesen biztosítani tudja, hogy egy bizonyos megőrzési idő elteltével törölje a régebbi snapshotokat, azaz egy "vándorló ablak"-ot kapunk a legutóbbi X nap mentéseivel. Használata rendkívül nehéz:
root@bicigli:~# mkdir mentesek
root@bicigli:~# glastree <mentendő könyvtár> mentesek
..és a mentesek alá elkezdi elkészíteni a 01, 02 stb. könyvtárakat. A man-jából egy példa arra, hogy hogyan mentsük automatizáltan, cronból a levelezésünket, a legutolsó 35 napnyit megtartva (ezt ugye a crontab -e futtatása tán kell beírni):
0 4 * * * glastree Mail /backups/bagoj/Mail ; \
glastreeprune --days=35 /backups/bagoj/Mail | xargs -- rm -fr
Ez a kis apróság sem teljes partíciók, sem élő rendszer mentésére nem alkalmas, de igen sokszor tud életmentő lenni. Ha valakinek nem tetszik a Perl, van egy Ruby megvalósítás is, pdumpfs néven.