Fujtajbl vespolek ..
Defragmentujte si filesystem. Neni pravda, ze Unixove filesystemy se nefragmentuji. Ja jsem si provedl kompletni defragmentaci a vysledkem jest rychlejsi system a mensi namahani disku ..
Nejvice se fragmentuji adresare s castym pristupem a zapisem (jako /var) a zvlaste na plnych (80%+) svazcich.
Otevrete konzoli a prihlaste se jako root.
Doinstalujte si pripadnou zavislost ::
apt-get install rsyncdale muzeme doinstalovat nejakou konzolovou gamesu, pac v prubehu defragmentace nam budou Xka zapovezena. Milovnici muziky si naistaluji treba :: mp3blaster
Defragmentacni nastroj stahneme z ::
http://download.tuxfamily.org/syzygy42/pool/edgy/reacocard/pyfragtools_0.1.tar.gzRozbalte do /usr/src a vlezte do rozbalene slozky, kde si pro ukraceni dlouhe chvile muzete precist README, nastroj nainstalujete klasickou metodou ::
make installPoznamka :: tento zpusob neni vhodny pro filesystem XFS, ale defragmentovat s nim lze take, akorat je pomalejsi.
Take
doporucuji ulozit nize uvedene prikazy do textoveho souboru v terminalu, ktery umistime do /root, protoze v konzoli nebudeme mit k dispozici internet a mys (i kdyz na to je nejakej balik pro mys v terminalu). Na kazdy radek ulozte jeden z prikazu nize (staci tam mit ty tucne zvyraznene), aby jste nemeli moc dlouhy vypis, kdyz si budete osvezovat pamet, co zadat, prikazem ::
cat howto_defrag.info // pojmenujete-li ho jako "howto_defrag.info"
Vhodna metoda pro ulozeni prikazu je prihlasit se rovnou jako root (zadne gsudo ani jine hnusy), vlezt k sobe domu $(cd ~) a zadat ::
cat << 'EOF' > howto_defrag.infozacatek radku se nam zmeni na '>', vzdy pastneme jeden z prikazu nize a odklepneme enter (samozrejme si muzeme na radek napsat nejaky komentar), kdyz jsme hotovi, odmackneme entrem jeden prazdny radek '>' a zadame ::
EOFtim se nam soubor uzavre a bude obsahovat, co jsem do nej nastrkali, overime ::
cat howto_defrag.infoNyni se odhlaste z xsek a v prihlasovaci obrazovce vlezte do terminalu :: ctrl+alt+F?
Prihlaste se o5 jako root a zadejte ::
cd ~ // timto vlezeme domu
Dejte si uroven behu na 3. V beznem Linuxu zadate prikaz :: init 3
V *buntu, pac ma same speciality, je to IMHO ::
telinit 3Pokud nekoho zajima, proc jsme se odhlasovali z Xsek a zadavali runlevel 3, tak vezte, ze defrag dle sve nalady preskakuje otevrene fajly $(lsof), takze by se nam nedefragmentovali pod Xkama napr. vsechny knihovny apod ..
Nyni muzeme defragmentovat ::
Budeme defragmentovat nasledujici adresare :: /boot, /home, /lib, /opt, /usr/lib, /usr/share, /var a $PATH
Do tohoto seznamu si muzete volitelne pridat Vase dalsi adresare s daty, u me :: /mnt/data
nejdriv si vyexportujeme co budeme defragmentovat ::
export FRAG_PATH=/boot:/home:/lib:/opt:/usr/lib:/usr/share:/var:$PATHzjistete a ulozte do logu stav pred defragmentaci (abychom meli na konci srovnani) ::
for x in $(echo $FRAG_PATH | sed 's/\:/\n/g'); do defrag -a $x >>defrag_before.log; donenyni muzeme defragmentovat ::
for x in $(echo $FRAG_PATH | sed 's/\:/\n/g'); do defrag -n 7 $x; donepo skonceni operace opet zalogujeme vysledek, abychom meli s cim srovnavat ::
for x in $(echo $FRAG_PATH | sed 's/\:/\n/g'); do defrag -a $x >>defrag_after.log; donemuzeme se vratit z5 do Xsek a uz jen porovname vysledky ::
cat defrag_before.log | sed '/^[0-9]/d;/^\//p;/^=\+\sCOM/,/^=\+$/!d' >defrag_before.info
cat defrag_after.log | sed '/^[0-9]/d;/^\//p;/^=\+\sCOM/,/^=\+$/!d' >defrag_after.info
diff defrag_before.info defrag_after.info | sed '/Improve/d' // vyse jsme si vytvorili tyto dva soubory
Pro uplne srovnani mame plne puvodni logy v cele krase a dva vyse vytvorene zkracene vypisy s koncovkou .info
ps. jako domaci ukol necht nekdo vymysli co nejelegantnejsi metodu vyparsovani vysledku a jejich srovnani z .log souboru a idealne tam jeste vlozi cesty, ktere jsme defragmentovali .. budiz mu inspiraci ma primitivni metoda s RE na konci.
ps2. maly tip: aby jste ve 3. runlevelu nemuseli otrocky vypisovat prikazy ze souboru "howto_defrag.info", muzete pouzit jednu z nasledujicich metod. Vzdy si ale pred pridanim `techto` zpetnych uvozovek overte, ze se Vam vypisuje opravdu radek s prikaze ktery chcete, takze napr. ::
cat howto_defrag.info // vypise co jsme si ulozili, muzeme zacit otrocky opisovat
cat howto_defrag.info | head -1 // vypise prvni radek
`cat howto_defrag.info | head -n 1` // provede prikaz na prvnim radku
`cat howto_defrag.info | tail -n 1` // provede prikaz na poslednim radku
`cat howto_defrag.info | grep defrag_before` // provede prikaz s obsahujici "defrag_before"
`cat howto_defrag.info | grep export` // provede prikaz z exportovanim, pac jsme si to zajiste uz ulozili ve spravne forme
Skutecne to neni treba potupne bez mysi opisovat, pote co to v terminalu
pokockujeme (ie. vypiseme prikazem cat)
Doufam, ze navod je srozumitelny i pro naproste zacatecniky.
enjoy by ntz