cptkrabbe
Goto Top

Wenn ping erfolgreich dann

Hallo.

Ich wecke ab und zu Rechner mit folgendem "Script" :
#!/bin/bash
echo "Wecke .77 - Bitte Warten"  
etherwake MA:CA:DR:ES:SE:00
while ! ping -c1 192.168.1.77 &>/dev/null; do echo "schlaeft"; done ; echo "wach" ;  
Erste Frage: Wie kann ich es so einrichten, dass die Ausgabe "schläft" nur einmal angezeigt wird, und wenn der ping dann erfolgreich war eben die Ausgabe "wach"?
Und: Wie kriege ich es hin, dass das Script nur 5 Minuten lang läuft und dann aufhört, meinetwegen mit der Ausgabe "Wake on Lan nicht erfolgreich"?

Vielen Dank euch schon mal!

Content-ID: 281411

Url: https://administrator.de/contentid/281411

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

114757
Lösung 114757 29.08.2015 aktualisiert um 12:14:22 Uhr
Goto Top
Moin,
z.B. so:
#!/bin/bash
start=$(date +%s)
diff=0
max=300

echo "Wecke .77 - Bitte Warten"   
etherwake MA:CA:DR:ES:SE:00 

while ! ping -c1 192.168.1.77 &>/dev/null ;do
        if [ $diff -eq 0 ];then echo "Rechner offline. Warte max. 5 Minuten...";fi  
        echo -n .
        diff=$(($(date +%s) - start))
        if [ $diff -ge $max ];then break ;fi 
done
if [ $diff -lt $max ];then
        echo "Rechner online!"  
else
        echo -e "\nZeitüberschreitung. Wake-On-Lan nicht erfolgreich."  
fi
Gruß jodel32
cptkrabbe
cptkrabbe 29.08.2015 um 12:14:15 Uhr
Goto Top
Das funktioniert extrem perfekt! Vielen Dank!