Unterschiede zwischen den Revisionen 10 und 11
Revision 10 vom 2007-04-06 22:36:53
Größe: 10274
Autor: dsl47-154
Kommentar: gnuplot added
Revision 11 vom 2007-04-06 22:42:31
Größe: 4927
Autor: dsl47-154
Kommentar: typos
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 8: Zeile 8:
#  #
Zeile 79: Zeile 79:
Wir sagen jetzt nmap, dass es diese Datei lesen soll und uns angeben, welcher Rechner eingeschaltet ist. Die Optionen sind mit man nmap nachzulesen, hier nur kurz erklärt:  Wir sagen jetzt nmap, dass es diese Datei lesen soll und uns angeben, welcher Rechner eingeschaltet ist. Die Optionen sind mit man nmap nachzulesen, hier nur kurz erklärt:
Zeile 93: Zeile 93:
grep finished | tr -d [:alpha:] | sed -e 's/<//g' -e 's#/##g' -e 's#=##g' -e 's#>##g' >> /var/log/einschalt_daten.log grep finished |
tr -d [:alpha:] |
sed -e 's/<//g' -e 's#/##g' -e 's#=##g' -e 's#>##g' >> /var/log/einschalt_daten.log
Zeile 97: Zeile 99:
1175890174 5 37 42
1175890502 2 40 42
1175890802 2 40 42
1175891102 0 42 42
1175891402 2 40 42
1175891702 2 40 42
1175892003 10 32 42
1175892303 2 40 42
1175892603 2 40 42
1175892903 2 40 42
1175893203 9 33 42
1175893502 2 40 42
1175893802 7 35 42
1175894102 2 40 42
1175894402 1 41 42
1175894702 2 40 42
1175895002 4 38 42
1175895302 2 40 42
1175895602 2 40 42
1175895903 8 34 42
1175896203 2 40 42
1175896503 0 42 42
1175896803 34 8 42
1175897103 2 40 42
1175897335 2 40 42
 1175890174 5 37 42
 1175890502 2 40 42
 1175890802 2 40 42
 1175891102 0 42 42
 1175891402 2 40 42
 1175891702 2 40 42
 1175892003 10 32 42
 1175892303 2 40 42
 1175892603 2 40 42
 1175892903 2 40 42
 1175893203 9 33 42
 1175893502 2 40 42
 1175893802 7 35 42
 1175894102 2 40 42
 1175894402 1 41 42
 1175894702 2 40 42
 1175895002 4 38 42
 1175895302 2 40 42
 1175895602 2 40 42
 1175895903 8 34 42
 1175896203 2 40 42
 1175896503 0 42 42
 1175896803 34 8 42
 1175897103 2 40 42
 1175897335 2 40 42
Zeile 133: Zeile 135:
#!/bin/bash #!/bin/bash
Zeile 136: Zeile 138:
#set -x
#set -e
cd /home/kurt/logs
#set -x
#set -e
cd /home/kurt/logs
Zeile 140: Zeile 142:
gnuplot << Gnuplot-Ende
set title "Einschaltzeiten der Rechner im Skolelinux Netzwerk"
set terminal png # Ausgabeformat png
set xdata time # The x axis data is time
gnuplot << Gnuplot-Ende
set title "Einschaltzeiten der Rechner im Skolelinux Netzwerk"
set terminal png # Ausgabeformat png
set xdata time # The x axis data is time
Zeile 145: Zeile 147:
set format x "%y%m%d" # On the x-axis, we want tics like 10-12                                                                                                       
set xlabel "Tag"                                                                                                                                                        
set ylabel "Eingeschaltete Rechner"                                                                                                                                     
set out "/home/kurt/public_html/einschalt.png"                                                                                                                          
plot [][0:*] "gskue_einschalt_daten.log" using 1:2 axes x1y1 title "Eingeschaltete Rechner" with linespoints, \                                                                       "gskue_einschalt_daten.log" using 1:3 axes x1y1 title "Ausgeschaltete Rechner" with linespoints, \                                                                       "gskue_einschalt_daten.log" using 1:4 axes x1y1 title "Summe der Rechner" with linespoints                                                                
set format x "%y%m%d" # On the x-axis, we want tics like 10-12
set xlabel "Tag"
set ylabel "Eingeschaltete Rechner"
set out "/home/kurt/public_html/einschalt.png"
plot [][0:*] "einschalt_daten.log" using 1:2 axes x1y1 title "Eingeschaltete Rechner" with linespoints, \
              "
einschalt_daten.log" using 1:3 axes x1y1 title "Ausgeschaltete Rechner" with linespoints, \
              "
einschalt_daten.log" using 1:4 axes x1y1 title "Summe der Rechner" with linespoints
Zeile 155: Zeile 157:
Das Ergebnis sieht dann ungefähr so aus: Das Ergebnis sieht dann so aus:

TableOfContents()

randomfile.sh

# waehlt aus einem Verzeichnis eine Datei durch Zufall aus
# und kopiert diese Datei in ein anderes Verzeichnis
# 060421 Kurt Gramlich GPL Software Schnipsel
#
DIR="/home/kurt/skole/images/automat"
DEST_DIR="/home/kurt/skole/images/titelfoto"
NR_FILES=$(ls $DIR | wc -l)
RANGE=$NR_FILES
SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }')
number=$SEED
let "number %= $RANGE"
echo "Random is $number"
let "number = $number +1"
echo "Number of files is $NR_FILES"
echo "Random is $number"
RND_FILE=$(echo $(ls $DIR) | awk -v RANDOM=$number '{print $RANDOM }')
echo "Random file is $RND_FILE"
cp $DIR/$RND_FILE $DEST_DIR/titel.jpg
exit 0

crontab

# stuendlicher Wechsel des Titelfotos
23 * * * * /home/kurt/bin/random_file.sh

bodymassindex.sh

# 060912 Kurt Gramlich GPL Software Schnipsel
# rechnet den BodyMassIndex aus
#
if [ $# -ne 2 ]; then echo "use: `basename $0` Koerpergroesse in cm  und Gewicht in kg eingeben"; exit 1; fi

#set -x
#bmi=$(echo "scale=10; ( $2 / ( ( $1 / 100 ) * ( $1 / 100 ) ) )" | bc);

bmi=$(echo "scale=3; ( $2 / ( ( $1 / 100 ) * ( $1 / 100 ) ) )" | bc);

echo
echo " BMI von 18.500 bis 25.000 gelten als normal"
echo " Der Body Mass Index ist $bmi "
echo " bei einer Koerpergroesse von $1 cm "
echo " und einem Gewicht von $2 kg"
echo

Einschaltzeiten von Rechnern in einem Netzwerk

Mit arpwatch sammeln wir die IP Adressen. Mit crontab und nmap scannen wir die gesammelten IPs. Mit gnuplot erzeugen wir eine Grafik.

arpwatch

Arpwatch erzeugt hier z.B. die Datei /var/lib/arpwatch/eth1.dat

0:16:17:98:91:2f        192.168.0.31    1175534112      ltsp031
0:16:17:98:91:8b        192.168.0.33    1175236347      ltsp033
0:2:b3:4c:b7:71 192.168.0.111   1175236296      ltsp111
0:4:75:bf:65:c2 192.168.0.80    1174743656      ltsp080
0:c0:4f:1f:8d:85        192.168.0.112   1175236338      ltsp112
0:b0:d0:66:4:a7 192.168.0.113   1175236418      ltsp113

Mit dem folgenden Kommando erzeugen wir daraus eine Liste der IPs:

cat eth1.dat | grep 192 | awk '{print $2}'  > 070406_rechner_ip_aus_eth1.dat

070406_rechner_ip_aus_eth1.dat sieht dann so aus:

192.168.0.31
192.168.0.33
192.168.0.111
192.168.0.80
192.168.0.112
192.168.0.113

nmap

Wir sagen jetzt nmap, dass es diese Datei lesen soll und uns angeben, welcher Rechner eingeschaltet ist. Die Optionen sind mit man nmap nachzulesen, hier nur kurz erklärt:

  • -sP nur pingen
  • -oX XML File ausgeben
  • - aus stout ausgeben
  • -e eth1 nur das Netzwerk hinter eth1 scannen
  • -iL den Inputfile verwenden

Dann holen wir uns aus dem Ergebnis nur eine Zeile, löschen mit sed die überflüssigen Angaben.

# einschalt_statistik4gnuplot.sh
# erstellt eine log Datei für gnuplot
# 070406 Kurt Gramlich GPL Software Schnipsel

nmap -sP -oX - -e eth1 -iL 070406_rechner_ip_aus_eth1.dat |
grep finished |
tr -d  [:alpha:] |
sed -e 's/<//g' -e 's#/##g' -e 's#=##g' -e 's#>##g' >>  /var/log/einschalt_daten.log

Diese Datei sieht dann so aus, wenn sie mit crontab alle fünf Minuten erzeugt wird:

 1175890174  5  37 42
 1175890502  2  40 42
 1175890802  2  40 42
 1175891102  0  42 42
 1175891402  2  40 42
 1175891702  2  40 42
 1175892003  10 32 42
 1175892303  2  40 42
 1175892603  2  40 42
 1175892903  2  40 42
 1175893203  9  33 42
 1175893502  2  40 42
 1175893802  7  35 42
 1175894102  2  40 42
 1175894402  1  41 42
 1175894702  2  40 42
 1175895002  4  38 42
 1175895302  2  40 42
 1175895602  2  40 42
 1175895903  8  34 42
 1175896203  2  40 42
 1175896503  0  42 42
 1175896803  34  8 42
 1175897103  2  40 42
 1175897335  2  40 42

crontab

Der Eintrag in der crontab sieht dazu so aus:

0-59/5 * * * * /usr/local/sbin/einschalt_statistik4gnuplot.sh

gnuplot

# uptimes.sh
# 070406 Kurt Gramlich GPL Software Schnipsel
#set -x
#set -e
cd /home/kurt/logs

gnuplot << Gnuplot-Ende
set title "Einschaltzeiten der Rechner im Skolelinux Netzwerk"
set terminal png         # Ausgabeformat png
set xdata time           # The x axis data is time
set timefmt "%s"         # The dates in seconds sins 1970
set format x "%y%m%d"    # On the x-axis, we want tics like 10-12
set xlabel "Tag"
set ylabel "Eingeschaltete Rechner"
set out "/home/kurt/public_html/einschalt.png"
plot [][0:*]  "einschalt_daten.log" using 1:2 axes x1y1 title "Eingeschaltete Rechner" with linespoints, \
              "einschalt_daten.log" using 1:3 axes x1y1 title "Ausgeschaltete Rechner" with linespoints, \
              "einschalt_daten.log" using 1:4 axes x1y1 title "Summe der Rechner" with linespoints
Gnuplot-Ende

Das Ergebnis sieht dann so aus:

http://www.skolelinux.de/download/einschalt.png

KurtGramlich/BashScripte (zuletzt geändert am 2013-11-03 12:10:44 durch localhost)

Alle Inhalte in diesem Wiki stehen unter der Creative Commons SA 4.0 DE Lizenz