[[oktatas:linux:hogyanok|< Hogyanok]] ====== Linux konzolon szemetes ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2012, 2015 * Licenc: GNU Free Documentation License 1.3 * Web: http://szit.hu ===== Bevezetés ===== A Linuxos rendszereken általában ext3, ext4 fájlrendszert használunk. Állományok visszaállítása ezért nagyon nehéz. A megelőzés érdekében szemetest készíthetünk a Libtrash nevű csomag segítségével. Nem sok idő telt el 2012 óta, ma 2015 van, a libtrash-t kivették a csomagok listájából. Az általam hivatkozott hup.hu weboldalon is azt írták korábban, hogy nem fejlesztik. Ez nem volt teljesen igaz, de a 2008-as kiadás után 6 év telt el az újabb kiadásig. 2014-ben volt újabb kiadás. Közben születtek megoldások szemetes funkcióra, de azok nem automatikusak. Ilyen például a trash-cli. A projekt egy újabb parancsot hoz létre a törléshez, ami egy kukába történik. Pusztán ebből áll a trash-cli használata. A libtrash viszont bármilyen törléssel működik, mivel a libc függvények előtt hajtódnak végre. A következő libc függvényeket írja felül, illetve hajtódik előttük végre: * unlink() * unlinkat() * rename() * renameat() * fopen() * fopen64() * freopen() * freopen64() * open() * openat() * open64() * openat64() * creat() * creat64() ===== Telepítés ===== # apt-get install libtrash Mivel kivették a csomagok közül, ezért ez az utasítás már lényegtelen. Beszerzéshez látogassunk el a weboldalára: * http://pages.stern.nyu.edu/~marriaga/software/libtrash/ Ott találunk egy linket a csomagra: * http://pages.stern.nyu.edu/~marriaga/software/libtrash/libtrash-latest.tgz Szedjük le a legújabb verziót: wget http://pages.stern.nyu.edu/~marriaga/software/libtrash/libtrash-latest.tgz Csomagoljuk ki: tar -xf libtrash-latest.tgz Egy libtrash-3.3 könyvtárat kaptam (2015). Lépjünk be a könyvtárba: cd libtrash-3.3 Fordítsuk le a forrást a következő paranccsal: make Telepítsük a libtrasht: make install A telepítés ezzel elkészült. ===== Beállítások ===== ==== A Debian 5.x rendszeren ==== Megkeressük milyen néven települt a .so fájl: # find /usr/lib -name libtrash.so* Találatunk a következő lehet:/usr/lib/libtrash/libtrash.so.2.4 Globális használathoz: # echo "/usr/lib/libtrash/libtrash.so.2.4" >> /etc/ld.so.preload Kilépés-, belépés után működik. Lokális használathoz: $ echo "export LD_PRELOAD=/usr/lib/libtrash/libtras.so.2.4" >> ~/.bashrc ==== Debian 8.x rendszeren ==== Telepítés után után (make install) a következő helyen találunk egy linket: /usr/local/lib/libtrash.so Ez mutat a /usr/local/lib/libtrash.so.3.3 nevű fájlra. Globális használathoz: # echo "export LD_PRELOAD=/usr/lib/libtrash/libtras.so" >> /etc/.profile Újraindulás után a /etc/.profile csak akkor lesz szerkeszthető, ha kikapcsoljuk a szemetest! Lokális használathoz: $ echo "export LD_PRELOAD=/usr/lib/libtrash/libtras.so" >> ~/.profile Mindnight Commander felhasználók! Előbb ki kell lépni a Mindnight Commanderből, és akkor használjuk a trashon vagy trashoff parancsot. ===== Karbantartás ===== Időnként azonban mindenképpen ki kell kapcsolni és törölni a kukát. A szemetes automatikus törléséhez 3 perl scriptet is tartalmaz a feltelepített csomag a következő helyen: /usr/share/doc/libtrash/examples/cleanTrash Ha a weboldaláról szedtünk le egy .tgz állományt, akkor ott is találunk egy cleanTrash könyvtárat. Alapesetben a rejtett és az üres (0 méretű) állományok nem kerülnek szemetesbe. ===== Használat ===== Tulajdonképpen semmit nem kell tennünk, működik. De hol találjuk a törölt állományokat az egyes esetekben. Ha globálisan állítottam be a szemetes funkciót, akkor a rendszergazda könyvtárában létre jön egy Trash könyvtár. /root/Trash A root felhasználó által törölt állományok közvetlenül ebbe a könyvtárba kerülnek. Ha felhasználó belép, számára is létrejön egy Trash nevű állomány. ~/Trash Ha egy janos nevű felhasználó töröl egy elemet a saját könyvtárában, és jogosultsági problémák miatt a janos felhasználó számára nem töltődött be a libtrash.so, akkor az a következő helyre kerül: /root/Trash/SYSTEM_ROOT/home/janos A kuka kikapcsolása: export TRASH_OFF=YES Visszakapcsolás: export TRASH_OFF=NO Készíthetünk egy parancsot is, ami megkönnyíti a ki és bekapcsolást menet közben. Fűzzük ~/.bashrc vagy ~/.profile fájl végéhez: # libtrash beállítások alias trashon="export TRASH_OFF=NO" alias trashoff="export TRASH_OFF=YES" exprort TRASH_OFF=NO ===== Tesztelés ===== - Készítsünk egy fájlt, legyen a neve teszt_fajl - Szerkesszük a teszt_fajl állományt és írjunk bele néhány karakter - Töröljük a fájlt, majd ellenőrizzük a ~/Trash könyvtárat $ echo "abc" > teszt_fajl $ rm teszt_fajl $ ls ~/Trash/ ===== Egyéb hogyan ===== * http://wiki.hup.hu/index.php/Libtrash (Leírás) * http://pages.stern.nyu.edu/~marriaga/software/libtrash/ (Libtrash weboldala) * https://github.com/termih/libtrash