NetBSD

    Jak długo serwer był niedostępny?

    Po dzisiejszej wichurze, która spowodowała wyłączenie prądu w nocy, chciałem się dowiedzieć jak długo go nie było. Nie jest to takie trudne jeżeli w domu ma się serwer chodzący 24h na dobę i oprócz mierzenia uptime’u monitorujemy także downtime. O paczce downtime przy okazji dodania jej do pkgsr-wip pisałem jakiś czas temu.

    Pierwsze co nam będzie potrzebne to zainstalowanie paczki downtimed – http://dist.epipe.com/downtimed/. Używając pkgsrc paczka jest w wip/downtimed.

    Po wydaniu polecenia downtimes dostajemy listę przerw w działaniu serwera:

    crash 2015-04-01 00:48:28 -> up 2015-04-01 02:22:27 =    01:33:59 (5639 s)

    Do tego czasu w moim przypadku należy dodać 27 minut ponieważ tyle mi UPS podtrzymuje całą szafkę teletechniczną ze switchem serwerem i innymi urządzeniami.

    A teraz pobawmy się bardziej danymi z downtimed. Za pomocą jednego zgrabnego „one-line’ra” możemy przeliczyć jak długo nasz serwer „leżał”.

    downtimes | awk {'print $10'} | sed 's/^.//' | paste -sd+ - | bc | awk '{print $1/60}' | awk '{print $1/60}' | awk '{print $1/24}'

    Robimy co następuje powyższym poleceniem:

    1. Wywołujemy downtimes produkując kolumnę z odnotowanymi przerwami
    2. Wynik przekazujemy do awk, które pokazuje nam tylko 10 pole (pola liczymy co spację) – czyli liczbę sekund ile trwało wyłącznie serwera
    3. Kolumnę z sekundami (i początkowym nawiasem) przekazujemy do sed’a przy pomocy, którego kasujemy nawiaz z pierwszego znaku. Ściślej rzecz ujmują zamieniamy pierwszy znak w każdej linijce na nic, ostatecznie dostajemy kolumnę sekund
    4. Kolumnę z sekundami przekazujemy do polecenia paste z parametrem -sd+ co powoduje sklejenie kolumny w jeden string oddzielony znakami + (znak „-” za -sd+ jest wymagany przy używaniu BSD paste, przy GNU paste można bez -)
    5. Gotowy string który ma postać ciągu sekund oddzielonego plusami przekazujemy do kalkulatora bc, który wykona dodawani.
    6. Otrzymaną sumę liczby sekund dzielimy przy pomocy awk przez 60 otrzymując minuty
    7. Otrzymane minuty ponownie dzielimy przez 60 otrzymując godziny.
    8. Na koniec wynik w minutach dzielimy przez 24 otrzymując ilość dni , kiedy serwer był niedostępny.

    Powyższe polecenie na moim domowym serwerze daje wynik 7.74633 dnia, czyli ponad 7,5 dnia.

    Włóżmy ten wynik w jakiś kontekst, aby się przekonać czy to dobry wynik czy nie. Akurat przeciwieństwem downtimed jest uptimed (surprise, surpise!) , który mierzy czas działania serwera i kilka innych ciekawych rzeczy jak rekordowe uptime’y oraz jaki był w tym momencie zainstalowany system, a także sumaryczną ilość dni ile działał serwer. Przy okazji możemy sprawdzić czy nasze obliczenia przy pomocy downtimed sprawdzą się.

    Na dzień dzisiejszy uprecords (komenda do wywołania statystyk) u mnie wygląda tak:

    dom# uprecords
    #               Uptime | System                                     Boot up
    ----------------------------+---------------------------------------------------
    1   102 days, 14:03:21 | NetBSD 6.1.4_PATCH        Tue Jul  8 16:37:50 2014
    2    81 days, 05:59:55 | NetBSD 6.1.4_PATCH        Fri Apr 18 10:33:21 2014
    3    80 days, 01:40:20 | NetBSD 6.1.5_PATCH        Sat Jan 10 22:07:27 2015
    4    68 days, 12:05:30 | NetBSD 6.1.0_PATCH        Mon Sep  9 21:51:38 2013
    5    44 days, 23:30:13 | NetBSD 6.1.5_PATCH        Wed Nov 26 19:51:24 2014
    6    44 days, 07:09:29 | NetBSD 6.1.0_PATCH        Sat Dec  7 11:02:04 2013
    7    41 days, 14:10:24 | NetBSD 6.1.0_PATCH        Fri Jan 31 22:46:29 2014
    8    38 days, 16:54:02 | NetBSD 6.0.0_PATCH        Sun Nov 25 23:59:36 2012
    9    37 days, 20:55:24 | NetBSD 6.0.0_PATCH        Sat Jan 12 12:13:53 2013
    10    37 days, 14:33:08 | NetBSD 6.1.0_PATCH        Fri Jun 21 23:19:00 2013
    ----------------------------+---------------------------------------------------
    ->  23     6 days, 11:12:42 | NetBSD 6.1.5_PATCH        Wed Apr  1 02:27:59 2015
    ----------------------------+---------------------------------------------------
    1up in     2 days, 21:08:28 | at                        Fri Apr 10 10:49:08 2015
    t10 in    31 days, 03:20:27 | at                        Fri May  8 17:01:07 2015
    no1 in    96 days, 02:50:40 | at                        Sun Jul 12 16:31:20 2015
    up   876 days, 17:53:56 | since                     Sun Nov  4 00:02:44 2012
    down     7 days, 18:44:01 | since                     Sun Nov  4 00:02:44 2012
    %up               99.120 | since                     Sun Nov  4 00:02:44 2012

    Wg uptimed serwer na ponad 876 dni był nieosiągalny przez 7 dni i prawie 19 godzin, co stanowi SLA na poziomie 99.12% :) Całkiem nieźle jak na domowy serwer!

    Sprawdźmy jeszcze czy wyniki downtimed i uptimed nie róźnią się zbytnio, czyli czy 7 dni 18 godzin i 44 minuty to mniej więcej 7.74633. Ponownie przy pomocy bc konwertujemy tym razem godziny do systemu dzisiętnego.

    dom# echo "scale=5; 44/60" | bc
    .73333
    dom# echo .73333+7 | bc
    7.73333

    Całkiem blisko, ale jak blisko? :) Poraz trzeci użyjmy bc aby policzyć procentową różnicę między tymi wartościami:

    dom# bc
    scale=5
    7.74633-7.73333
    .01300
    7.74633+7.73333/2
    11.61299
    .01300/11.61299*100
    .11100

    Różnica 0.11% czyli w zasadzie pomijalna. Za to zabawa w konsoli przednia :)

     

     

    VN:F [1.9.22_1171]
    Rating: 0.0/10 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    Fun

    One line to know where your users are on vacation :) (if they use company mail on vacation)

    Assuming You use dovecot 2.x and stores logs in /var/log/maillog:

    cat /var/log/maillog | grep Login: | awk '{print $10}' | sed 's/rip=//g' | sed 's/,//g' >> /tmp/1.txt && sh -c 'for line in `cat /tmp/1.txt`; do geoiplookup $line; done' | sort | uniq | awk '{print $4 $5}'

    gives You unique locations of every user login. You can also grep for specific login instead of all of them :)

    If You are not rotating Your logs it will take some time to return results.

    VN:F [1.9.22_1171]
    Rating: 0.0/10 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: +1 (from 1 vote)

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    NetBSD

    mor(r)e .pl developers in NetBSD!

    Dzisiaj będzie nietypowo, ponieważ post nie będzie dotyczył mnie bezpośrednio a kogoś zupełnie innego. Rzadko zdarza się bowiem, że Polak zostaje developerem naszego ulubionego systemu Unixowego. Tym razem radość jest podwójna ponieważ tym Polakiem jest Daniel ‚morrHorecki, którego znam „osobiście” z IRC’a i z którym nie jednego priva zapisałem uzyskując wartościowe informacje i pomoc z NetBSD czy pkgsrc.

    Gratulacje i nie obijaj się tam z tym pkgsrc i pl mirrorem ;)

    VN:F [1.9.22_1171]
    Rating: 10.0/10 (1 vote cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    Family / Rodzina

    Mój pierwszy Proliant!

    Tosia skończyła jakiś czas temu półtora roku. Zastanawiałem się co kupić córce na prezent. Grzechotki przestały ją już interesować, a o wiele bardziej zaczynają zabawki logiczne. Szukałem, szukałem i w końcu jest! Idealny prezent na początek zabawy z komputerami! Proliant DL160 G5. System to oczywiście NetBSD 5.0 (zainstalowany jeszcze z pomocą taty). Myślę, że właściwie dobrany prezent pomoże w przyszłości rozwinąć zainteresowania o których Tosia jeszcze nie wie teraz. Może nawet zostanie kobietą Adminką, w końcu mało ich :)

    Powyższa opowieść jest oczywiście żartem, aż takim geekiem nie jestem aby pokazywać UNIXy półtoralatce. Aczkolwiek błękitna dioda od UID’a, którą można wyłączać i włączać była całkiem interesująca przez pewien okres czasu :) Poza tym miło się pracuje z taką przylepą na kolanach :)

    Mój pierwszy Proliant!
    Mój pierwszy Proliant!




    VN:F [1.9.22_1171]
    Rating: 10.0/10 (1 vote cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    NetBSD

    Co nowego w świecie NetBSD

    Dla kolegów po fachu nic w tym wpisie odkrywczego nie będzie, pozostali mogą znaleźć tu kilka ciekawych informacji zgromadzonych w jednym miejscu.

    Jak pewnie wiecie, mój zakład z lamą trwa i śmiem twierdzić, że jestem krok do przodu ponieważ NetBSD 5RC1 został niedawno wydany. Prawdopodobnie czeka nas jeszcze RC2, RC3 i może RC4, oraz wersja finalna. Windowsa nie ślędzę, może lama wypowie się pod postem :) Jeżeli jeszcze nie zapoznałeś się z NetBSD warto zacząć od 5 RC1. Poprawiono znacznie obsługę wielowątkowości, SMP jest w podstawowym kernelu, dołożono (narazie jako opcja) journaling do systemu FFS. O reszcie zmian można przeczytać na stronie projektu. NetBSD zainstalowany na moim netbooku Aspire One sprawuje się wyśmienicie. Działa ACPI, Xorg z netbookowa rozdzielczością, kamerka wifi, ethernet, czytnik kart. Już wkrótce szczegóły w osobnej notce.

    Czy wiecie co to jest Sidekick? Jest to smartphone amerykańskiej firmy Danger Hiptop. Danger został niedawno kupiony przez Microsoft. Wydawać by się mogło, że firma mająca dedykowany system dla smartphone’ów wykorzysta go w nowo nabytym produkcie. Prace nad telefonem były chyba tak zaawansowane, że MS postanowił kontynuować je wykorzystując istniejące oprogramowanie Open Source. Tak, tak, Sidekick działa pod kontrolą NetBSD! W sieci pokazały się już ogłoszenie o pracę dla developerów NetBSD. Czas pokaże co z tego wyjdzie, ale zapowiada się nieźle.

    Sidekick
    Sidekick

    Na koniec ciekawostka. Wiecie co będzie 14 lutego 2009? Walentynki tak, Dzień Chorych na Padaczkę również. Ważniejszą jednak informacją jest jednak to, że tego dnia UNIX Time czyli liczba sekund liczona od epoki czyli od 1 stycznia 1970 przybierze magiczną kombinację 1234567890!
    Szczegóły wraz z przykładem na blogu Huberta Feyrera.




    VN:F [1.9.22_1171]
    Rating: 0.0/10 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
    Related Posts with Thumbnails

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    Add your widget here