NFsec Logo

Obciążenie systemu na pasku tytułu

10/09/2009 w Hacks & Scripts Brak komentarzy.  (artykuł nr 149, ilość słów: 491)

P

rzedstawiony hack jest tłumaczeniem “Constant Load Average Display in the Titlebar” z książki “Linux Servers Hacks” autorstwa Rob’a Flickenger’a udostępnionym on-line (Hack #59) na stronie http://hacks.oreilly.com. Do tłumaczenia zostało dodane także parę informacji od tłumacza.

   Poniżnej przedstawiony listing napisany w Perlu pozwala na wyświetlanie, co określony czas bieżące, średnie obciążenie systemu na pasku terminala. Swoim dodatkowym zadaniem jest możliwość orientacji ile zasobów systemowych jest zabieranych przez aktualnie działający program, ponieważ pasek stanu jest wyświetlany bez względu na wykonywane zadanie w terminalu. W celu kompatybilności z innymi systemami należy upewnić się, że ścieżka do pakietu Perl jest taka sama jak w przedstawionym skrypcie poleceniem: which perl – jeśli jest to inna wartość niż prezentowana poniżej – zmienić ją na właściwą.

#!/usr/bin/perl -w

use strict;
$|++;

my $host=`/bin/hostname`;
chomp $host;

while(1) {

open(LOAD,"/proc/loadavg") || die "Brak dostępu do /proc/loadavg: $!\n";

my @load=split(/ /,<LOAD>);
close(LOAD);

print "\033]0;";
print "$host: $load[0] $load[1] $load[2] at ", scalar(localtime);
print "\007";

sleep 2;
}

W celu powszechnego dostępu do powyższego skryptu należy go zapisać np. pod nazwą tl oraz skopiować do katalogu: /usr/bin/. Nadając mu prawa do wykonywania przez wszystkich: chmod +x /usr/bin/tl udostępniamy nasz skrypt każdemu użytkownikowi w systemie. Następnie kiedy chcesz, aby pasek tytułowy był zastąpiony nazwą hosta, średnim obciążeniem systemu oraz aktualną datą Twojego komputera, do którego się zalogowałeś, po prostu uruchom polecenie: tl & Skrypt szczęśliwie zacznie pracować w tle, nawet jeśli jest uruchomiony interaktywny program taki jak vim czy ekg. Jeśli na pasku tytułowym jest wyświetlany aktualny katalog bieżący, nie ma problemu. Po wklepaniu komendy cd bieżący katalog roboczy na chwilę się wyświetli, a następnie zostanie znowu zastąpiony aktualnym czasem i średnim obciążeniem komputera. Chcesz zobaczyć jeszcze raz ten katalog? Po prostu naciśnij [Enter] w pustym wierszu i jego nazwa znowu mignie.

Teraz zamiast rozmieszczać okna terminali na całej powierzchni ekranu, możesz umieścić je jedno przy drugim (pozostawiając widoczne paski tytułu) i obserwować jednym rzutem oka, jak ciężko pracuje każda z maszyn. Kiedy musisz zacząć pracować na jednym z tych komputerów, po prostu przenieś jego okno na pierwszy plan i od razu zacznij wypełniać swoje obowiązki. Oczywiście, to wszystko dostępne jest bez instalacji najmniejszego kawałka innego oprogramowania na Twoim lokalnym komputerze.

Kiedy zakończysz pracę nie zapomnij o zabiciu wszystkich procesów związanych ze skryptem tl za pomocą polecenia: killall tl:

$ echo 'killall tl > /dev/null 2>&1' >> ~/.bash_logout

Polecenie to spowoduje, że podczas każdego opuszczania systemu zostaną zniszczone wszystkie działające zadania tl. Administracja systemem jest po prostu coraz łatwiejsza prawda? W celu automatycznego odpalania skryptu title bar oraz darowania sobie każdorazowego wstukiwania komendy tl wystarczy stowrzyć plik .bash_login i umieścić w nim następującą treść (zakładając, że skrypt został przekopiowany do /usr/bin):

if [ -x /usr/bin/tl ]; then
   /usr/bin/tl &
fi

W celu wykonywania skryptu w czasie rzeczywistym, możemy zmienić parametr sleep na wartość 1 – spowoduje to odświeżanie informacji o średnim obciążeniu systemu dokładnie co jedną sekundę. Możemy także ograniczyć wykonywanie skryptu do konkretnej grupy np. administratorów systemu.

Więcej informacji: Perl, man tload, Hacks O’Reilly

Kategorie K a t e g o r i e : Hacks & Scripts

Tagi T a g i : , , ,

Komentowanie tego wpisu jest zablokowane.