M
m5space
Gast
Hallo zusammen,
ich möchte von meinem Raspberry Pi aus mehrere IP-Adressen per Cronjob anpingen.
Es scheitert jetzt nur noch an zwei Programmzeilen.
Erstens: Wenn eine log-Datei noch nicht existiert, soll diese erstellt werden, hier werden die Kopfspalten nicht vollständig erstellt. Die Kopfspalten sollten eigentlich alle IP-Adressen beinhalten, die ich vorgebe.
Zweitens: Ich möchte ein Array mit IP-Adressen an den Ping-Befehl übergeben, das klappt nicht. Ausgabe:
Wo kann ich mit Suchen anfangen?
Hier ist das komplette Skript pingtest.zsh:
LG!
ich möchte von meinem Raspberry Pi aus mehrere IP-Adressen per Cronjob anpingen.
Es scheitert jetzt nur noch an zwei Programmzeilen.
Erstens: Wenn eine log-Datei noch nicht existiert, soll diese erstellt werden, hier werden die Kopfspalten nicht vollständig erstellt. Die Kopfspalten sollten eigentlich alle IP-Adressen beinhalten, die ich vorgebe.
Code:
datum;uhrzeit;18.35.2021;19:35:59;success;
18.39.2021;19:39:14;success;
18.47.2021;19:47:47;success;
18.47.2021;19:47:53;success;
Zweitens: Ich möchte ein Array mit IP-Adressen an den Ping-Befehl übergeben, das klappt nicht. Ausgabe:
Code:
pi@Brotdose:~/pingtest $ ./pingtest.zsh
./pingtest.zsh: line 39: 127.0.0.1: syntax error: invalid arithmetic operator (error token is ".0.0.1")
pi@Brotdose:~/pingtest $
Wo kann ich mit Suchen anfangen?
Hier ist das komplette Skript pingtest.zsh:
Code:
#!/bin/bash
#skript-funktion:
#die ping-ausgabe wird nach ´0 received´ jdurchsucht,
#dementsprechend wird ein ping als erfolgt oder fehlerhaft gewertet
#ping-ergebnisse landen in einer csv-datei
#variablen
d=$(date +%d.%M.%Y)
t=$(date +%H:%M:%S)
#anzupingende ip adressen
arr=(127.0.0.1 10.0.0.1 8.8.8.8 8.8.4.4 217.5.100.185 217.5.100.186)
#prüfen ob logdatei existiert, ggf. eine erstellen
if [ -f "/home/pi/pingtest/pingtest.csv" ];
then
#nichts zu tun
echo "" >> /dev/null
else
#logdatei erstellen mitsamt kopfzeile
echo -n "datum;uhrzeit;" > pingtest.csv
for i in arr
do
echo -n "${arr[i]};" >> pingtest.csv
done
fi
#datum in logdatei schreiben
echo -n $d >> pingtest.csv
echo -n ';' >> pingtest.csv
#uhrzeit in logdatei schreiben
echo -n $t >> pingtest.csv
echo -n ';' >> pingtest.csv
#alle ip adressen durchpingen
for n in arr
do
if echo $(ping -c 1 ${arr[n]}) | grep "0 received" &> /dev/null;
then
echo -n "fail;";
else
echo -n "success;";
fi >> pingtest.csv
done
#zeilenende, zeilenumbruch
echo "" >> pingtest.csv
#ende
LG!
Zuletzt bearbeitet von einem Moderator: