2008 07 08 Superkaramba [Poczatkujacy]

background image

Tips&Tricks

Superkaramba

68

lipiec/sierpień 2008

Tips&Tricks

Superkaramba

69

www.lpmagazine.org

Superkaramba

Piotr Pawłowski

P

oprzednio opisywany program
Gkrellm (patrz artykuł z Linux+ nr
05/2008) stanowi dobre narzędzie
do monitoringu. Alternatywą dla

niego są aplety programu Superkaramba. W po-
niższym tekście postaram się pokazać jak łatwo
można stworzyć od podstaw lub zmodyfikować
aplet umożliwiający bieżące kontrolowanie kom-
ponentów komputera.

Instalacja Superkaramby

Program Superkaramba, umożliwiający nam
włączanie widżetów, można znaleźć na stronie
domowej projektu http://netdragon.sourceforge
.net/
. Znajduje się także w wielu repozytoriach
dla większości z dystrybucji linuksowych. Pro-
gram przeznaczony jest głównie dla środowiska
graficznego KDE, jednak nie ogranicza się tylko
do niego. Przy doinstalowaniu odpowiednich bi-
bliotek dla KDE możemy go uruchomić także na
innych GUI. Od wersji KDE 3.5 pakiet Super-
karamba jest dołączony standardowo. Podczas
budowy tematu mamy możliwość rozszerzania
funkcjonalności poprzez dodawanie składników
z takich języków programistycznych jak Python,
Ruby, Java Script czy C++.

Zabawa graficzna

Aby nasz motyw był czytelny i wyróżniał się na
pulpicie należy stworzyć obrazek, który posłuży
jako tło apletu. Wiedza z zakresu grafiki ograni-
cza się wyłącznie do stworzenia obrazku o wy-
miarach, jakie umożliwia nam rozdzielczość mo-
nitora. Metodą prób i błędów tworzymy przykła-
dowe tło o pożądanych przez nas wymiarach.
Wielkość tła umożliwia nam umieszczenie więk-
szej ilości komponentów, które chcemy śledzić.
Ciekawy efekt możemy uzyskać, gdy tło będzie
półprzeźroczyste. Aplet wykorzystujący taki ob-
razek bardzo dobrze komponuje się z pulpitem.

Oprócz stworzenia tła możemy się pokusić o

zrobienie siatki kartograficznej, na której umiesz-
czany będzie wykres obciążenia procesora, ilość
zajmowanej pamięci RAM lub prędkość wysyła-
nia i ściągania danych z sieci Internet. Oczywi-
ście wymiary takiej siatki muszą wymiarami być
dopasowane do tła. Warto także zwrócić uwagę
na kolorystykę. Odpowiednie dobranie kolorów
w stosunku do naszego pulpitu sprawi, że aplet
będzie wyglądał bardzo profesjonalnie.

Pierwsze kroki

Tworzenie nowego tematu można dokonać w do-
wolnym edytorze tekstu. Pliki należy zapisywać
w formacie nazwa.theme . Aby rozpocząć two-
rzenie należy zdefiniować, iż plik będzie aple-
tem programu Superkaramba. Następnym kro-
kiem jest zdefiniowanie szerokości i wysokości.
Warto tutaj nadmienić, że położenie każdego ele-
mentu względem całego tematu określane jest za
pomocą pikseli. Początek naszego apletu będzie
wyglądał następująco:

karamba x=100 y=100 w=220 h=730
locked=true

Zmienne x oraz y służą do ustawienia okna w
wybranej pozycji na pulpicie – okno będzie mia-
ło rozmiar 220x730. Rozdzielczość powinna
być dopasowana do naszego obrazka służącego
za tło. Parametr locked służy do zablokowania
możliwości zmiany położenia tematu. Ten frag-
ment można pominąć, gdyż blokowanie lub od-
blokowywanie każdego widżetu zmieniamy po-
przez najechanie kursorem na motyw i wciśnię-

cie kombinacji Ctrl+L lub kliknięcie prawym
przyciskiem myszy i wybraniu opcji Przełącz
zablokowanie pozycji
. Kolejnym etapem jest
określenie standardowej czcionki, jej koloru
oraz rozmiaru. Jako, że chcemy dołączyć stwo-
rzone przez nas tło musimy również zadekla-
rować użycie obrazka. Uzyskujemy to poprzez
wpisanie poniższych linijek:

defaultfont font="Sans serif"
fontsize=11 color=255,255,255
image x=0 y=0 path="images/bg.png"
name="background"

Druga linijka służy do dodania stworzonego
przez nas obrazka jako tło motywu. Taki plik jest
już gotowy do implementacji w programie. Wy-
starczy zapisać go z rozszerzeniem *.theme.

Uzyskanie informacji o systemie

Pierwszą rzeczą, jaką chcielibyśmy uzyskać są
informacje o naszym ulubionym systemie ope-
racyjnym. Z rzeczy, jakie nas interesują to aktu-
alnie zalogowany użytkownik, wersja zainstalo-
wanego jądra, wersja KDE oraz czas pracy na-
szego komputera. Z pomocą przychodzą nam
zmienne środowiskowe. Należy zwrócić uwagę
na to, że aplety Superkaramby potrafią interpre-
tować takie polecenia jak konsola systemowa.
Listing 1. przedstawia uzyskanie wcześniej wy-
mienionych danych.

Przyjrzyjmy się bliżej opisanym polece-

niom. Jak widać, każde polecenie musi zo-
stać ujęte w cudzysłowie, podobnie jak zwy-
kły tekst, który chcemy wyświetlić dla opisa-
nia wartości. W linijkach opisujących aktual-
nie zalogowanego użytkownika skorzystałem
z dobrodziejstw zmiennych środowiskowych.
Dzięki nim, oprócz nazwy użytkownika, może-

Listing 1.

Pobieranie informacji o systemie

# Użytkownik

text

x

=10

y

=35

value

=

"Uzytkownik

:"

text

x

=100

y

=35

sensor

=program

program

=

"echo ${USER}"

# Kernel

text

x

=10

y

=50

value

=

"Kernel :"

text

x

=100

y

=50

sensor

=program

program

=

"echo `uname -r`"

# KDE

text

x

=10

y

=65

value

=

"KDE:"

text

x

=100

y

=65

sensor

=program

program

=

"kde-config --version |

grep KDE | sed -e 's/.*: //'"

#Uptime

text

x

=10

y

=80

value

=

"Czas pracy:"

text

x

=100

y

=80

sensor

=uptime

format

=

"%d dni(dzien) %Hh %Mmin"

interval

=6000

background image

Tips&Tricks

Superkaramba

68

lipiec/sierpień 2008

Tips&Tricks

Superkaramba

69

www.lpmagazine.org

my uzyskać szereg innych danych takie jak ar-
chitektura naszego procesora, nazwę i typ hosta
czy domyślna używana powłoka. Informacja o
jądrze także została zaczerpnięta dzięki polece-
niu uname z flagą -r. Warto poeksperymento-
wać, jakie jeszcze przydatne informacje może-
my uzyskać. Sprawdzenie wersji naszego śro-
dowiska graficznego sprowadza się do skorzy-

stania z trzech poleceń:

kde-config

,

grep

oraz

sed

. Jak widać istnieje możliwość korzystania

z tzw. pipingu. W odmienny sposób wyciąga-
my informacje o czasie pracy. Superkaram-
ba posiada zaimplementowane funkcje, które
umożliwiają określenie długości pracy na kom-
puterze. Służą do tego zmienne

%D

,

%H

oraz

%M

. Polecenie

interval

służy do odświeżania in-

formacji. W tym momencie dane będą spraw-
dzane co 60 sekund.

Procesor

W następnej sekcji chcemy, aby wyświetlane by-
ło obciążenie, częstotliwość i temperatura proce-
sora oraz 8 procesów, które najbardziej obciąża-
ją nasz system.

Opcją szczególną, na którą pozwala nam

Superkaramba i która zostanie przeze mnie za-
stosowana, jest wykres graficzny. Aby wykres
był bardziej czytelny warto przygotować plik
graficzny, który będzie stanowił tło. W tym
przypadku najpierw należy zdefiniować poło-
żenie obrazka oraz ścieżkę dostępu do niego za
pomocą znacznika image, a następnie w tym sa-
mym miejscu w naszym motywie umieścić wy-
kres (wartości x oraz y muszą być identyczne)
za pomocą znacznika graph. Do pobrania da-
nych o obciążeniu znów przychodzi nam z po-
mocą Superkaramba – zmienna

%load

ułatwia

nam zadanie. Oprócz obciążenia możemy tak-
że dowiedzieć się ile obciążenia powoduje użyt-
kownik (

%user

) oraz system (

%system

). Odna-

lezienie informacji o częstotliwości oraz tempe-
raturze procesora należy do indywidualnego po-
dejścia użytkownika. W moim przypadku dane
te znajdowały się w plikach /proc/cpuinfo oraz
/proc/acpi/thermal_zone/TZS0/temperature

.

Za pomoca poleceń

cat

, grep oraz sed dotar-

łem do potrzebnych wartości. Całą sekcję opi-
suje Listing 2.

Pamięć

Znając już proces uzyskiwania informacji z ze-
wnętrznych poleceń możemy zająć się tym, na
co pozwala nam Superkaramba. Jedną z takich
opcji, jest uzyskiwanie danych dotyczących pa-
mięci – zarówno RAM oraz Swap, jak i pojem-
ności dysków twardych. Z pamięci podręcznej
możemy uzyskać takie dane jak: pamięć wol-
na (

%fm

), pamięć zajęta (

%um

), pamięć całkowi-

ta (

%tm

), całkowita, wolna i zajęta pamięć swap

(

%ts

,

%fs

,

%us

). Z dostępnych opcji wybiera-

my te, które chcemy śledzić i umieszczamy je
w zmiennej format.

Uzyskiwanie wolnej lub zajętej przestrze-

ni na dyskach twardych jest nie mniej łatwe jak
w przypadku pamięci podręcznej. Podstawowe
informacje uzyskujemy za pomocą zmiennych
opisanych w Listingu 3. Należy zwrócić uwa-
gę na zmienną mountpoint. Dzięki niej usta-
wiamy ścieżkę dostępu do dysku, którego ob-
jętość chcemy na bieżąco monitorować, np.

mountpoint="/mnt/cdrom"

. Daje to nam moż-

liwość nie tylko do nadzorowania objętości dys-
ków, lecz także poszczególnych katalogów, np.
domowego.

Sieć

Monitorowanie sieci LAN jest kolejnym eta-
pem w tworzeniu naszego widżetu. Znajo-
mość modyfikacji tej części jest bardzo przy-
datna, gdyż zdarzają się tematy Superkaram-
by, w które sami będziemy musieli zmodyfiko-
wać, aby uzyskać pożądany efekt. W tej sekcji
także warto posłużyć się poznanymi już wcze-
śniej znacznikami graph i image do graficznej
prezentacji obciążenia sieci. Istotnymi parame-
trami są device oraz format. Pierwsza z nich
wskazuje na urządzenie sieciowe w naszym
komputerze, dzięki któremu łączymy się z In-
ternetem. Za pomocą drugiego określamy, któ-
ra prędkość nas interesuje – wysyłanie czy po-
bieranie danych. Kolejnym etapem jest pobra-
nie danych dotyczących pobierania/wysyłania
danych. Takie informacje możemy uzyskać
z właściwości naszej karty sieciowej. Linijka
RX bytes odpowiada za aktualne prędkości na-
szego urządzenia. Zależy nam na pobraniu tyl-
ko wartości wysyłania. Wykorzystując polece-
nie

awk

podajemy, którą grupę znaków chcemy

pobrać. (Listing4).

Superkaramba pozwala na pisanie znacz-

nie bardziej rozbudowanych tematów. Warto
wykorzystywać skrypty pisane w językach pro-
gramowania do wprowadzenia większej inte-
rakcji z użytkownikiem.

Listing 2.

Obciążenie, taktowanie i temperatu-

ra procesora

# Procesor -> Obciążenie

image

x

=10

y

=140

path

=

"images/

grid.png"

graph

x

=10

y

=140

sensor

=CPU

w

=200

h

=25

points

=70

color

=255,255,127

text

x

=10

y

=170

value

=

"Obciazenie CPU : "

text

x

=200

y

=170

sensor

=CPU

format

=

"%load%"

align

=right

# Procesor -> Częstotliwość

...
text

x

=176

y

=185

sensor

=program

program

=

"cat /proc/cpuinfo |

grep 'cpu MHz' | sed -e 's/
.*: //'"

...

#Procesor -> Temperatura

...
text

x

=200

y

=200

sensor

=program

program

=

"cat /proc/acpi/thermal_

zone/TZS0/temperature | grep
'temperature' | sed -e 's/.*: //'"

align

=right

interval

=1000

Listing 3.

Zmienne do informacji stanów dysków

%fg – wolna przestrzeń w gigabajtach
%fp – procent wolnej przestrzeni
%ug – zajęta przestrzeń w gigabajtach
%up – procent zajętej przestrzeni
%tg – całkowita pojemnośc dysku w
gigabajtach

Listing 4.

Monitoring prędkości karty sieciowej

image

x

=10

y

=655

path

=

"images/

grid.png"

graph

x

=10

y

=655

sensor

=network

device

=

"eth1"

format

=

"%out"

w

=200

h

=25

color

=255,127,127

interval

=1000

max

=100

text

x

=200

y

=690

sensor

=program

program

="/sbin/ifconfig eth1 |

grep 'RX byte' | awk '{print

$3

$4

}'"

align

=right

interval

=10000

text

x

=10

y

=705

sensor

=network

device

=

"eth1"

format

=

"%out KB/s"

decimals

=1

Piotr Pawłowski jest studentem drugiego ro-
ku Informatyki i Ekonometrii. Z linuxa korzy-
sta od prawie roku jednak od pierwszego
zetknięcia stał się jego wiernym użytkowni-
kiem. Jest czynnym członkiem Koła Nauko-
wego Systemów Informatycznych E-xpert
działającego przy Katedrze Informatyki Eko-
nomicznej Uniwersytetu Gdańskiego.
Kontakt z autorem: p.pawlowski@e-xpert.pl

O autorze


Wyszukiwarka

Podobne podstrony:
PiKI 2008 07 08
2008 07 08 Bezpieczeństwo sieci Wi Fi [Bezpieczenstwo]
2009 07 08 FreeBSD – chwila dla admina, cz 1 [Poczatkujacy]
autyzm nr 07 08 2008
hakin9 07 08 2008 pl
Parkiet 2008 06 07 08 Jędrzejewski z Ponarem zwiążę się na długo
Hakin9 39 (07 08 2008)
02a URAZY CZASZKOWO MÓZGOWE OGÓLNIE 2008 11 08
ankieta 07 08
ei 2005 07 08 s085 id 154185 Nieznany
fiszki 01 07 i 08
chemia lato 12 07 08 id 112433 Nieznany
07 08 PAME O przekroczeniu progu
podst chemii 07 07 08
ei 2005 07 08 s033 id 154176 Nieznany

więcej podobnych podstron