Guest User

vnstat / zenity

a guest
Sep 7th, 2016
133
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3.  
  4.                    #Naplnenie premennych
  5.  
  6. nemas_vnstat="Pravdepodobne nemáš nainštalovaný vnstat\n možeš ho nainštalovať príkazom\n\n sudo apt-get install vnstat\n\n Alebo možeš použiť svoj obľúbený nástroj na inštaláciu balíčkov."
  7.  
  8. nemas_font="Nemáš nainštalovaný font DejaVu Sans Mono čo môže spôsobyť že zobrazenie výsledkov vnstat nebude správne formátované.\nToto nieje generálna chyba ale môže pokaziť zážitok z použivania tohto skriptu. :D"
  9.  
  10. nemas_kartu="V tvojom zariadení som nenašiel žiadnu sieťovú kartu."
  11.  
  12. text_informacie="Tento jednoduchý skript slúži iba na to aby načítal dáta generované konzolovým programom vnstat a zobrazil ich v okne za pomoci programu zenity.\nRovnako sa snaží automaticky detekovať sieťové karty v zariadení kde ho spúšťaš.\n\n"
  13.  
  14. cesta_k_databaze="$(cat /etc/vnstat.conf | grep -i "DatabaseDir" | sed 's/.*\"\(.*\)\".*/\1/')/"
  15.  
  16.                    #Tato cast sa snazi zistit ci bezi vnstat
  17.  
  18. cislo=$(ps -A | grep -ic vnstatd)
  19. if [ "$cislo" -lt 1 ]; then
  20.    zenity --info --text="$nemas_vnstat" && exit
  21. fi
  22.  
  23.                    #Tato cast zistuje ci je v systeme nainstalovany font DejaVu Sans Mono
  24.  
  25. cislo=$(fc-list | grep -ioc "DejaVu Sans Mono")
  26. if [ "$cislo" -lt 1 ]; then
  27.    zenity --info --text="$nemas_font"
  28. fi
  29.  
  30.                    #Tato cast sa snazi najst sietove zariadenia
  31.  
  32.      #najde nazvy sietovych zariadeni a ulozi ich do premennej
  33.  
  34. karta_zoznam=$(vnstat --iflist | sed 's/.*: \(.*\) (.*/\1/')
  35.  
  36.      #kontroluje ci je aspon jedna sietova karta
  37. if [ "$karta_zoznam" == "" ]; then
  38.    zenity --info --text="$nemas_kartu"; exit 0
  39. fi
  40.  
  41.      #vyraduje sietove zariadenia ktore nemaju vytvorenu databazu v vnstat
  42. for meno_karty in $karta_zoznam ; do
  43.    if [ "$meno_karty" != "" ]; then
  44.       if [ "`find "$cesta_k_databaze" -name "$meno_karty"`" == ""$cesta_k_databaze""$meno_karty"" ]; then
  45.          meno_karty1="$meno_karty"+"$meno_karty1"
  46.          else
  47.          karta_bez_databazy="$meno_karty"---"$karta_bez_databazy"
  48.       fi
  49.    fi
  50.       zoznam_aktivnych_kariet=$(echo "$meno_karty1" | sed 's/+$//')
  51. done
  52.  
  53.                    #Tato cast zobrazi okno s ponukou a vyber zapise do premennej
  54.  
  55. vyber=$(zenity  --list  --text "Zvoľ formát zobrazenia." --radiolist --column "Výber" --column "Ponuka" FALSE "Denný" FALSE "Týždenný" TRUE "Mesačný" FALSE "Koniec" FALSE "Informácie" --height=250 --width=70)
  56.  
  57.                    #Tato cast zobrazuje vysledky podla predchadzajucej volby
  58.  
  59. [ "$vyber" == Denný ] && vnstat -d -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
  60. [ "$vyber" == Týždenný ] && vnstat -w -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
  61. [ "$vyber" == Mesačný ] && vnstat -m -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
  62. [ "$vyber" == Koniec ] &&  exit
  63. [ "$vyber" == Informácie ] &&  zenity --info --text="$text_informacie\n\nSieťové zariadenia detekovane systemom:\n Sieťové zariadenie 1. `echo "$zoznam_aktivnych_kariet" | sed 's/+/\n Sieťové zariadenie 2. /'`\n Karta/y bez databázy vo vnstat  - "$karta_bez_databazy"\n\nPodrobnosti:\nCesta k databáze vnstat - "$cesta_k_databaze"\n\nifconfig\n`ifconfig`"
  64.  
  65. exit 0
RAW Paste Data