ubuntuusers.de

Wake On Lan Script

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

zppnduster

Anmeldungsdatum:
19. Juni 2011

Beiträge: 66

Moin,

ich habe mir ein kleines Script gebaut, welches nicht so ganz funktioniert. Es geht dabei eigentlich nur um Schönheitsfehler, aber da ich mich gerade mit dem Thema Scripting beschäftige, will ich gerne wissen, warum was nicht geht. ☺

Der Rechner fährt korrekt hoch (WOL). Mir geht es dabei um eine Ausgabe mit "Alles hat funktioniert" oder halt "hat nicht funktioniert". So sieht das Script bisher aus:

#!/bin/sh
# Ein Script zum aufwecken meines Rechners
# Name: wakeme

# MAC-Adresse meines Rechners
mac="01:23:45:67:89:10" # Hier steht dann natuerlich meine echte MAC

echo Rechner wird aufgeweckt. Bitte warten.
etherwake $mac

# Hier wird  mit einem Workaround eine Wartezeit eingebaut
ping 127.0.0.1 -i 25 -c 2 > /dev/null

# Hier wird der Rechner angepingt, um zu schauen, ob er auch hochgefahren wurde
ping 192.168.178.28 -c 2 > /dev/null

# Hier wird ueberprueft, ob der Vorgang erfolgreich war
if ($? -eq 0)
then
        echo Rechner wurde erfolgreich hochgefahren.
        exit 0
fi

echo Der Rechner konnte nicht hochgefahren werden. Fehler.
exit 1

Ich kriege dabei allerdings immer folgende Ausgabe:

Rechner wird aufgeweckt. Bitte warten.
/bin/wakeme: 22: 1: not found
Der Rechner konnte nicht hochgefahren werden. Fehler.

Weiss jemand was ich falsch gemacht habe? $? sollte doch dann 0 sein, wenn die beiden Pings an den Rechner erfolgreich waren.

Ich danke wie immer im Voraus. ☺

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21834

Wohnort: Lorchhausen im schönen Rheingau

Eher so: Du hast die falschen Klammern ums if gesetzt und benutzt kein sleep. Wenn du bash statt sh als Interpreter nutzt, kannst du auch doppelte [ fürs if verwenden. Ich finde nur grad nicht mehr, was der Vorteil war.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
# Ein Script zum aufwecken meines Rechners
# Name: wakeme

# MAC-Adresse meines Rechners
mac="01:23:45:67:89:10" # Hier steht dann natuerlich meine echte MAC

echo Rechner wird aufgeweckt. Bitte warten.
etherwake $mac

sleep 30

# Hier wird der Rechner angepingt, um zu schauen, ob er auch hochgefahren wurde
ping 192.168.178.28 -c 2 > /dev/null

# Hier wird ueberprueft, ob der Vorgang erfolgreich war
if [ $? -ne 0 ]
then
        echo "Der Rechner konnte nicht hochgefahren werden. Fehler."
        exit 1
fi


echo "Rechner wurde erfolgreich hochgefahren."
exit 0

gunwald

Anmeldungsdatum:
12. Juli 2010

Beiträge: 218

Wohnort: /home/gunwald

So sollte es gehn:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
# Ein Script zum aufwecken meines Rechners
# Name: wakeme

# MAC-Adresse meines Rechners
mac="01:23:45:67:89:10" # Hier steht dann natuerlich meine echte MAC

echo "Rechner wird aufgeweckt. Bitte warten".
etherwake $mac

# Hier wird  mit einem Workaround eine Wartezeit eingebaut
sleep 25

# Hier wird der Rechner angepingt, um zu schauen, ob er auch hochgefahren wurde
ping 192.168.178.28 -c 2 > /dev/null

# Hier wird ueberprueft, ob der Vorgang erfolgreich war
if [ $? -eq 0 ]
then
        echo "Rechner wurde erfolgreich hochgefahren."
        exit 0
fi

echo "Der Rechner konnte nicht hochgefahren werden. Fehler."
exit 1

»if« brauch eckige Klammen...

zppnduster

(Themenstarter)

Anmeldungsdatum:
19. Juni 2011

Beiträge: 66

Vielen Dank. Das hat geklappt. ☺

Antworten |