1419
Kommentar: typo
|
3973
erweitert
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 51: | Zeile 51: |
== 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. {{{ #!/bin/sh # 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 | sed -e 's/<runstats><finished/NETZWERKNAME /' | sed -e 's#/><hosts##' | sed -e 's# />##' >> /var/log/einschalt_daten.log }}} Diese Datei sieht dann so aus, wenn sie mit crontab alle fünf Minuten erzeugt wird: {{{ NETZWERKNAME time="1175890174" up="2" down="40" total="42" NETZWERKNAME time="1175890502" up="2" down="40" total="42" NETZWERKNAME time="1175890802" up="2" down="40" total="42" NETZWERKNAME time="1175891102" up="2" down="40" total="42" NETZWERKNAME time="1175891402" up="2" down="40" total="42" NETZWERKNAME time="1175891702" up="2" down="40" total="42" NETZWERKNAME time="1175892003" up="2" down="40" total="42" NETZWERKNAME time="1175892303" up="2" down="40" total="42" NETZWERKNAME time="1175892603" up="2" down="40" total="42" }}} === crontab === Der Eintrag in der crontab sieht dazu so aus: {{{ 0-59/5 * * * * /usr/local/sbin/einschalt_statistik4gnuplot.sh }}} === gnuplot === |
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 | sed -e 's/<runstats><finished/NETZWERKNAME /' | sed -e 's#/><hosts##' | sed -e 's# />##' >> /var/log/einschalt_daten.log
Diese Datei sieht dann so aus, wenn sie mit crontab alle fünf Minuten erzeugt wird:
NETZWERKNAME time="1175890174" up="2" down="40" total="42" NETZWERKNAME time="1175890502" up="2" down="40" total="42" NETZWERKNAME time="1175890802" up="2" down="40" total="42" NETZWERKNAME time="1175891102" up="2" down="40" total="42" NETZWERKNAME time="1175891402" up="2" down="40" total="42" NETZWERKNAME time="1175891702" up="2" down="40" total="42" NETZWERKNAME time="1175892003" up="2" down="40" total="42" NETZWERKNAME time="1175892303" up="2" down="40" total="42" NETZWERKNAME time="1175892603" up="2" down="40" total="42"
crontab
Der Eintrag in der crontab sieht dazu so aus:
0-59/5 * * * * /usr/local/sbin/einschalt_statistik4gnuplot.sh