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-Key: 281411

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

Printed on: April 25, 2024 at 00:04 o'clock

Mitglied: 114757
Solution 114757 Aug 29, 2015 updated at 10:14:22 (UTC)
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
Member: cptkrabbe
cptkrabbe Aug 29, 2015 at 10:14:15 (UTC)
Goto Top
Das funktioniert extrem perfekt! Vielen Dank!