Odzyskiwanie miejsca w systemie (Linux, Windows).

Używany system ma tendencję do powolnego gubienia miejsca. Niezależnie od tego czy mamy w systemie porządek, czy nie, z czasem przybywa rzeczy, których nie potrzebujemy. Z jednej strony są to bardzo potrzebne pliki, których po prostu szkoda skasować (chociaż tak naprawdę nigdy już ich nie otworzymy), z drugiej nieużywane pakiety, konfiguracje usuniętych pakietów, pliki tymczasowe itp.

O ile z pierwszymi nie bardzo można sobie poradzić inaczej, niż samodzielnie utrzymując porządek (sortowanie do katalogów, kasowanie zbędnych rzeczy) i ręcznie usuwając pliki, to w przypadku tych drugich można sobie pomóc w czyszczeniu systemu różnymi automatami i półautomatami.

Pierwszy złodziej miejsca w systemie to cache apt-a, czyli /var/cache/apt/archives. Leżą tu paczki deb instalowanych pakietów. We wszystkich wersjach, także tych starszych. Praktycznie nigdy nie będą potrzebne, więc z czystym sumieniem możemy je skasować: wajig clean (lub, bardziej kanonicznie apt-get clean).

Drugi popularny złodziej miejsca to locale, czyli różne wersje językowe dla danego programu. Zwykle nie potrzebujemy dokumentacji itp. po hiszpańsku, włosku czy chińsku. Rozwiązanie: localepurge (po uprzednim skonfigurowaniu, fajnie jakby coś jednak zostało…).

Potem można zobaczyć, czy nie zostały w systemie pliki konfiguracyjne po usuniętych pakietach. Przy okazji sprawdzimy, które pakiety zajmują najwięcej miejsca: wajig sizes. Status inny niż installed oznacza, że raczej możemy się pozbyć pakietu w całości, czyli z konfigami (wajig purge <pakiet>).

Na koniec jeszcze deborphan (albo wersja ładniejsza w curses czyli orphaner) i usuwamy zainstalowane na potrzeby spełnienia zależności niepotrzebne pakiety (głównie biblioteki).

Tu się zwykle sprzątanie kończy. No dobrze, można jeszcze skorzystać z jednego z przydatnych poleceń i spojrzeć, które katalogi zajmują najwięcej miejsca (du –max-depth=1 -b | sort -n) i ręcznie pousuwać zbędne rzeczy (typu cache googleearth).

Dłużej używane systemy mają tendencję do gromadzenia pakietów z poprzednich wersji (szczególnie, jeśli korzysta się z wersji niestabilnej lub miesza kilka wersji systemu). Można je łatwo wytropić (i usunąć) korzystając z opisanego sposobu: wajig versions | grep -v squeeze.

A dziś odkryłem wisienkę na czubek tortu: BleachBit. Narzędzie jest wieloplatformowe (Linux, Windows) z funkcjami typowo Debianowymi (bardziej Ubuntu pewnie) i zajmuje się takimi cichymi złodziejami miejsca jak cache różnych aplikacji. Poza tym, że sięga tam, gdzie inne automaty nie sięgają, umie też czyścić rzeczy typowo systemowe: wspomniany cache apta, nieużywane lokalizacje (twórcy BleachBit twierdzą, że robi to znacznie skuteczniej, niż localepurge, faktycznie znalazł więcej).

Posiada zarówno miłą klikalną wersję GUI (z której korzystałem) jak i interfejs CLI (nie próbowałem). Do tego dobre podpowiedzi do opcji (ostrzega przed opcjami powolnymi i potencjalnie niebezpiecznymi). Działa bardzo fajnie, więc zdecydowanie polecam, jeśli ktoś planuje porządki w systemie (a chyba każdy prędzej czy później staje przed pytaniem jak odzyskać miejsce w systemie?). Użycie jest proste: najpierw wybiera się, co chce się usunąć, potem jest podgląd plików do usunięcia (warto spojrzeć co będzie usuwane – wywala np. pliki bak i inne tymczasowe – czasami może tam być coś pożytecznego…). Program dba o prywatność użytkownika – jako opcja dostępne jest nadpisywanie zawartości kasowanych plików przed ich usunięciem.

Jedyne do czego można się przyczepić, to spolszczenie. Zapewne w oryginale był vacuum (bazy danych), a został… odkurzacz. I parę innych kwiatków tego typu, ale IMHO nie rzutuje na całość.

Integracja Blox i Flattr – krótkie HOWTO.

W końcu udało mi się zintegrować Flattr, czyli serwis do mikropłatności i Blox. Nie było to takie proste, na jakie wyglądało, więc pozwolę sobie zamieścić krótkie howto.

Pierwsza sprawa, to dodanie prostego javascriptu do Ustawienia -> Wpisy -> Dodaj pod każdym wpisem. Niestety, Blox ma buga i tagi typu {tytul} są rozwijane tylko przy pierwszym wystąpieniu. Przynajmniej w javascripcie. A akurat pola tytuł to ja już używam…

Podpatrzyłem obejście z widgetów Wykopu i Facebook, które wstawia Blox – skoro to javascript, to można się odwołać do tytułu przez encodeURIComponent(document.title); Bingo. No prawie, bo nadal nie działa. Nadal nic nie mówiący Error w widgecie Flattr.

Doładowałem konto na Flattr i postanowiłem dodać wpis ręcznie, z tymi samymi parametrami. Okazało się, że zmienna flattr_dsc jest obowiązkowa, a tymczasem wywaliłem ją, bo nie miałem pomysłu, co tam wstawić.

Ostatecznie działający kod wygląda następująco:

<script type="text/javascript">var flattr_uid = '10901'; // TWOJE Flattr IDvar flattr_tle = encodeURIComponent(document.title); // Tytuł stronyvar flattr_dsc = 'Blox blog entry ID: {id}'; // nie jestem pewien, czy musi być unikatowe, ale tak - będzievar flattr_cat = 'text';var flattr_lng = 'pl_PL'; // skoro Blox, to pewnie po polsku piszeszvar flattr_tag = '{tagi_b}'; // lista separowanych przecinkiem tagówvar flattr_url = '{link}'; // link do wpisu</script><script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>

Gdyby ktoś wykorzystywał już zmienną {link} to najprawdopodobniej zamiast niej użyć encodeURIComponent(location.href); Oczywiście zadziała tylko w javascript.

Parametrów jest nieco więcej, opisane są w API Flattr, można choćby zmieniać wygląd przycisku na compact.

Nie jest zupełnie różowo – nie działa mi w jednym wpisie. Podejrzewam, że przez to, że był dodany ręcznie, z identycznymi parametrami. Nie widzę też wpisów dodanych w My latest things. Być może zmieni się to, gdy ktoś flattrnie wpis.

Zabbix-agent na OpenWrt.

Jakiś czas temu uruchomiłem parę sztuk OpenWrt na routerach Linksysach WRT54GL. Wybór dystrybucji na router podyktowany był głównie tym, że OpenWrt ma spore zaplecze w postaci pakietów z różnymi aplikacjami przygotowanych do bezpośredniego uruchomienia, wśród nich także pakiety Zabbix (nie wiem po co serwer, ale klient się przydaje), czyli niezłego IMO systemu monitoringu.

Niestety, dla przynajmniej w przypadku Kamikadze 8.09.1 po zainstalowaniu zabbix-agent nie działa. Konfig wygląda OK, skrypt uruchamiający jest trywialny, ale po

/etc/init.d/zabbix-agent start

nie pojawił się żaden proces Zabbiksa. Nie tak szybki debug (trick ze zmianą położenia logów był całkiem skteczną przeszkodą – wyglądało jakby ich nie było, a o strace na OpenWrt można zapomnieć) ujawnił, że plik konfiguracyjny ma prawa 600 i właściciela root, a tymczasem proces zabbix-agent jest uruchamiany z użytkownika zabbix. Rozwiązanie to oczywiście:

chmod +r /etc/zabbix/zabbix_agentd.conf

Po tym działa jak trzeba.