Lubuntu wykres użycia łącza-transferu na pulpicie


Użytkownicy telefonów Windows Phone 8.1 doskonale znają zakładkę Czujnik Danych, w której znaleźć można informację, o ilości pobranych danych poprzez siec komórkową oraz łącze Wi-Fi. Okazuje się, że tworząc punkt dostępowy do Internetu dla innych urządzeń na komputerze z zainstalowanym systemem Linux, np. dystrybucją Lubuntu 14.04 można osiągnąć efekt podobny, a nawet lepszy. Jest to bardzo przydatne, ponieważ możemy zaraz po uruchomieniu, np. naszego laptopa, który wcześniej skonfigurowaliśmy w taki sposób, że pierwszym interfejsem sieciowym łączymy się z odległą siecią Wi-Fi, a drugim rozgłaszamy nasz Internet, sprawdzić ilość zużytego transferu. Zacznijmy od instalacji vnstat i vnsati.

Instalacja vnstat & vnstati

sudo apt-get install vnstat
sudo apt-get install vnstati
Teraz należy utworzyć bazę danych, (jako root, czyli Start=>Uruchom=>gksudo lxterminal), w której vnstat zgromadzi statystyki, podając nazwę interfejsu sieciowego, dla którego chcemy zgromadzić statystyki:
vnstat -u -i ppp0    /* dla połączenia typu gsm
vnstat -u -i wlan1  /* dla karty wifi o interface wlan1
Nazwę interfacu sprawdzimy poleceniem iwconfig lun ifconfig.
Można też wpisać vnstat -u -i eth0 lub vnstat -u -i lo  jeżeli potrzebujemy wyniki dla połączenia kablowego.
Po utworzeniu bazy danych, należy ponownie uruchomić demona programu:
/etc/init.d/vnstat restart

Polecenie /etc/init.d/vnstat start przydatne jest także w przypadku otrzymania komunikatu:
„Error: Unable to read database“ lub w sytuacji, kiedy przez długi czas nie aktualizują się dane zbierane przez program vnstat.
Sprawdźmy czy daemon działa:
ps -f | grep vnst


Rysunek 1. Jak widać daemon działa.
Daeomona vnstat wypadałoby też dodać do autostartu, tak by ładował się wraz ze startem systemu. Proponuje, zatem wydanie polecenie:
sudo update-rc.d vnstat defaults
Po jakimś czasie, kiedy zebrane już zostaną statystyki, będziemy mieli do nich wgląd.

Vnstat wyniki

Wpisujemy w konsolę np. 
vnstat -m /* wyniki miesięczne
vnstat -d  /* wyniki dzienne
vnstat -w /* wyniki tygodniowe
vnstat -h    /* wyniki godzinowe
vnstat /* ogólne podsumowanie statystyk (raport z ostatniego miesiąca oraz dzisiejszego i wczorajszego dnia):
vnstat -s       /* raport ogólny w skróconej formie
vnstat -d -i wlan1   /*wynik dzienny dla wybranego interfacu, w tym przypadku dla wlan1
vnstat -l -i wlan1    /* raport na żywo dla interfacu wlan1, ctrl+c zatrzymuje raport na żywo

Vnstati wyniki

Wpisujemy w konsolę np.
vnstati -i wlan1 -o plik.png -m   /*utworzy plik o nazwie plik.png z wynikami miesięcznymi dla interfacu wlan1
vnstati -i wlan1 -o plik.png –d      /*utworzy plik o nazwie plik.png z wynikami dziennymi dla interfacu wlan1
vnstati -i wlan1 -o plik.png -h       /*utworzy plik o nazwie plik.png z wynikami godzinowymi dla interfacu wlan1
vnstati -i wlan1 -o plik.png -s       /*utworzy plik o nazwie plik.png z podsumowaniem dla interfacu wlan1
vnstati -i wlan1 -o plik.png -hs   /*utworzy plik o nazwie plik.png z podsumowaniem dla interfacu wlan1 rozmieszczonym poziomo
vnstati -i wlan1 -o plik.png -vs   /*utworzy plik o nazwie plik.png z podsumowaniem dla interfacu wlan1 rozmieszczonym pionowo
vnstati -i wlan1+wlan0 -o plik1.png -vs  /* łączny (zsumowany) transfer z interfaceu wlan1 i wlan0

Instalacja Conky Managera

Conky Manager to program pozwalający wyświetlać informację na pulpicie zainstalowanego systemu Linux. Instalujemy go za pomocą Software Center, a jeżeli to nie działa to korzystamy z poniższych poleceń.
Wpisujemy w konsoli:
sudo apt-add-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install conky-manager
Teraz klikamy Start => Akcesoria => Conky Manager
Wybieramy Applications settings i ustawiamy przełącznik „Run Conky at system startup „ w pozycja ON oraz ustawiamy czas Startup Delay (seconds) na 10s.
Teraz klikamy Start=> Uruchom i wpisujemy „gksudo pcmanfm“. Po lewej wybieramy „Drzewo katalogów“ i przechodzimy do lokalizacji „/home/aa“. Teraz Ctrl+H pokaże ukryte pliki i foldery. Wybieramy folder „.conky“ i pod folder TeejeeTech. Teraz klikamy Prawym przyciskiem myszy i wybieramy Utwórz nowy =>Pusty plik. Utworzony nowy plik nazywamy „Network Panel conky“
Teraz klikamy Start => Uruchom i wpisujemy „gksudo leafpad“ W otwartym edytorze z uprawnieniami roota otwieramy utworzony plik o nazwie „Network Panel conky“. Jeżeli nie widzimy go w lokalizacji /home/aa/.conky/TeejeeTech używamy ctrl+h, aby zobaczyć ukryte pliki i foldery.
Kopiujemy do pliku w otwartym edytorze kod:

# **********************************************************************
# "CPU Panel (8-core)" theme for Conky by Tony George (teejee2008@gmail.com)
#
# Webpage: http://teejeetech.blogspot.in/
# **********************************************************************


background yes
double_buffer yes

alignment top_left

border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

gap_x 550
gap_y 30
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no

own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual no
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 450 0
stippled_borders 0
update_interval 5.0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=10
color0 white
color1 EAEAEA
color2 FFA300
color3 grey

TEXT
${color orange}${voffset 2}${hr 1}
${color1}Network using vnStat "-i", "-w" and "-m"
${color}${goto 5}Dziś ${goto 100}Wczoraj ${goto 225}Tydzień ${goto 325}Miesiąc
${color green}${execi 300 vnstat -i wlan1 | grep "today" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 110}${execi 300 vnstat -i wlan1 | grep "yesterday" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 220}${execi 300 vnstat -i wlan1 -w | grep "current week" | awk '{print $9" "substr ($10, 1, 1)}'} ${goto 315}${execi 300 vnstat -i wlan1 -m | grep "`date +"%b '%y"`" | awk '{print $9" "substr ($10, 1, 1)}'}
${color orange}${voffset 2}${hr 1}


Zapisujemy ctrl+s. Otwieramy Conky Managera i w Widżetach widzimy nową pozycję Network Panel conky. Po zaznaczeniu jej powinniśmy zobaczyć po prawej stronie ekranu pasek z informacjami o transferze zebrane przez daeomon vnstat.

Rysunek 2. Efekt użycia vnstat w Conky Managerze widoczny na pulpicie Lubuntu

Teraz sposób na cały wykres w Conky Managerze

Przykładowy wykres, którego wyniki są aktualizowane, co 5minut wygląda w ten sposób:

Rysunek 3. Wykres vnstati w Conky Managerze

Mając już skonfigurowany według wcześniejszych akapitów program Conky Manager oraz vnstat i vnstati klikamy System=>Uruchom=>wpisujemy „gksudo pcmanfm“
Przechodzimy do lokalizacji /home/aa  [jeżeli nie widzimy .conky to naduszamy ctrl+H] i dalej /.conky/TeejeeTech/  Teraz klikamy Prawym przyciskiem myszy i wybieramy Utwórz nowy =>Pusty plik. Utworzony nowy plik nazywamy „vnstati conky“. Teraz klikamy Start => Uruchom i wpisujemy „gksudo leafpad“ W otwartym edytorze z uprawnieniami roota otwieramy utworzony plik o nazwie „vnstati conky“. Jeżeli nie widzimy go w lokalizacji /home/aa/.conky/TeejeeTech używamy ctrl+h, aby zobaczyć ukryte pliki i foldery.
Kopiujemy do pliku w otwartym edytorze kod:
# **********************************************************************
# "CPU Panel (8-core)" theme for Conky by Tony George (teejee2008@gmail.com)
#
# Webpage: http://teejeetech.blogspot.in/
# **********************************************************************


background yes
double_buffer no

alignment top_left

border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

gap_x 550
gap_y 300
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no

own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual no
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 450 0
stippled_borders 0
update_interval 60.0
imlib_cache_size 0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=10
color0 white
color1 EAEAEA
color2 FFA300
color3 grey


TEXT
${color orange}${voffset 2}${hr 1}

${image /home/aa/plik1.png -p 20,20 -s 400x300}

${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }
${color1 }

${color orange}${voffset 2}${hr 1}

Zapisujemy ctrl+s. Otwieramy Conky Managera i w Widżetach widzimy nową pozycję vnstati conky. Teoretycznie po zaznaczeniu jej powinniśmy zobaczyć po prawej stronie ekranu pasek z informacjami o transferze zebrane przez daeomon vnstati. Musimy jednak jeszcze zadbać, żeby nasz skrypt został uruchomiony automatycznie po starcie systemu Lubuntu 14.04. Wspomniany skrypt ma za zadnie generować przy pomocy programu vnstati plik o nazwie plik1.png w lokalizacji /home/aa/ Plik ten dodatkowo musi być generowany np., co 10 sekund. Plik ten (jest on, co 5 minut aktualizowany przez program vnstati. Program vnstati co 5 minut aktualizuje swoją bazę danych o transferze) jest wyświetlany przez Conky Managera co 60 sekund, o czym decyduje parametr: update_interval 60.0 . Warto zauważyć, że zastosowany w kodzie parametr imlib_cache_size 0 w ogóle pozwala nam wczytywać obrazek, co kilka minut (bez niego ten kod nie działa). Łatwo zauważyć, że można sprawić, aby plik był generowany rzadziej, np., co 300 sekund (5minut) skoro i tak vnstati aktualizuje go, co 5 minut. Ja jednak, aby maksymalnie skrócić czas oczekiwania na pojawienie się nowych wykresów (ich aktualizację w pewnym sensie w miarę na bieżąco) postanowiłem zastosować tak małe wartości (tylko 10 sekund. Równie dobrze może być 60 lub 120 sekund).
Mając uprawnienia roota o otwieramy lokalizację /usr/bin/ i tworzymy tutaj plik staticonky.sh W ten plik wklejamy:
#!/bin/sh
### BEGIN INIT INFO
# Provides: staticonky
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Krótki opis działania
# Description: Dłuższy opis działania
### END INIT INFO

### START config here:
ZMIENNA="staticonky"
### END config here.

start() {
       echo "Start $ZMIENNA"
       watch -n 10 -x vnstati -i wlan1 -o /home/aa/plik1.png -vs
}
stop() {
       echo "Stop $ZMIENNA"
       kill staticonky
}

case "$1" in
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       stop
       start
       ;;
   *)
       echo "Usage: /etc/init.d/staticonky {start|stop|restart}"
       exit 1
esac

exit 0

Zapisujemy ctrl+s. Leafpad musi być uruchomiony poprzez wpisanie „gksudo leafpad“.
Teraz przechodzimy do lokalizacji /etc/rc.local i przed exit 0 dopisujemy linijkę kodu
/usr/bin/staticonky.sh, która wskazuje położenie naszego skryptu uruchamiającego generowanie skryptu zaraz po starcie systemu. Zapisujemy ctrl+s.
Należy zauważyć, że większość podanych w Internecie skryptów nie zadziała, ponieważ nie zwierają one stosownej formy. Powyższy skrypt zwiera sekcję nagłówkową opisującą skrypt i tylko taki skrypt może zostać uruchomiony przy starcie. Przykładowe:
#!/bin/bash
watch -n 10 -x vnstati -i wlan1 -o /home/aa/plik1.png -vs
zadziała w terminalu, ale nie uruchomi się wraz ze startem systemu.
Dodatkowo powinniśmy też przejść do lokalizacji /etc/init.d/ i w niej utworzyć także plik staticonky.sh W jego zawartość wklejamy kod:
#!/bin/sh
### BEGIN INIT INFO
# Provides: staticonky
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Krótki opis działania
# Description: Dłuższy opis działania
### END INIT INFO

### START config here:
ZMIENNA="staticonky"
### END config here.

start() {
       echo "Start $ZMIENNA"
       watch -n 10 -x vnstati -i wlan1 -o /home/aa/plik1.png -vs
}
stop() {
       echo "Stop $ZMIENNA"
       kill staticonky
}

case "$1" in
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       stop
       start
       ;;
   *)
       echo "Usage: /etc/init.d/staticonky {start|stop|restart}"
       exit 1
esac

exit 0

Kod powinien być identyczny jak we wcześniej stworzonym skrypcie, dlatego możemy go skopiować stąd lub przekopiować plik staticonky.sh z lokalizacji /usr/bin/staticonky.sh do lokalizacji /etc/init.d/
Dalej zapisujemy zmiany ctrl+s. Teraz wpisujemy w terminal [uruchomiony przez System=>Uruchom => „gksudo lxterminal“] polecenie sudo chmod +x /etc/init.d/staticonky.sh Ustawiamy dzięki temu typ pliku na wykonywalny. Teraz jeszcze tylko polecenie sudo update-rc.d staticonky.sh defaults 80 Po 5 minutach od startu Lubuntu powinien wyświetlić zaktualizowany wykres. Jeśli tego nie zrobi może pomóc wpisanie w terminal sudo /etc/init.d/staticonky.sh start lub sudo /etc/init.d/staticonky start albo ostatecznie sudo service staticonky start

W kodzie skryptu najważniejsza jest linijka watch -n 10 -x vnstati -i wlan1 -o /home/aa/plik1.png -vs
Dodatkowo w linijce tej może dopisać na jej początku przed watch wyrażenie sleep 15 co opóźni wykonanie skryptu o 15 sekund od startu systemu. Samo polecenie watch służy do powtarzania jakiegoś polecenia w terminalu lub kodu, co określony interwał wyrażony w sekundach. Znacznik -n 10 oznacza powtarzanie, co 10 sekund. Znacznik -x pozwala określić, co ma być powtarzane. W naszym przypadku regularnie powtarzamy generowanie obrazka plik1.png w lokalizacji /home/aa/ dla interfacu wlan1 przez zainstalowany wcześniej program vnstati. Znacznik -vs to znacznik programu vnstati oznaczający sposób generowania wykresu. Równie dobrze możemy generować inny wykres zmieniając ten znacznik według parametrów przyjmowanych przez daemon vnstati. Szczegółowe parametry można znaleźć w opisie lub poradnikach do programu vnstati.

Brak komentarzy:

Prześlij komentarz