Benutzer-Werkzeuge

Webseiten-Werkzeuge


Writing /srv/www/htdocs/udo/singollo.de/linux.singollo.de/public_html/data/cache/3/381a63caddeb7a6c59287a3e200816f9.metadata failed
wol

WOL - Wake On Lan

Wake On Lan ist eine schöne Einrichtung, um Rechner per Netzwerk zu starten. Ich nutze das seit kurzem für meinen Druckerserver.

Zum Einrichten von WOL muss man erstmal prüfen, ob der Zielrechner überhaupt WOL-fähig ist.

ethtool eth0|grep Wake-on

Wenn dort ein Supports Wake-on: g bzw. Wake-on: g erscheint, so ist die Karte zumindest einmal WOL-fähig. Eigentlich sind dies mittlerweile alle erhältlichen Netzwerkkarten. Im nächsten Schritt muss entweder ein WOL-Kabel von der Karte zum Mainboard gelegt werden oder im Setup der Karte (bei Onboard-Karten im BIOS) das WOL eingeschaltet werden. Zudem muss das Bios auch ein Booten über WOL erlauben. Erst dann macht das folgende Script überhaupt Sinn.

Genaueres zum Thema WOL und Linux findet ihr auf http://www.mydarc.de/dl6mfj/wol_linux.html.

wol_remote.sh

#!/bin/sh
 
while [ "$1" != "" ]; do
  case $1 in
     -m|--mac)
            shift
            mac=$1
            ;;
     -r|--remote)
            shift
            remote=$1
            ;;
     -s|--halt|--stop)
            echo "shutting down remote server..."
            ssh root@$remote halt
            ;;
     -w|--wol|--start)
            echo "waking up remote server..."
            wol -v $mac
            ;;
     *)
            echo "$0"
            echo -e "Licence: GPL, 2009 by Udo Neist\n"
            echo "Usage: $0"
            echo -e "\t-s|--halt|--stop\tShutting down remote server"
            echo -e "\t-w|--wol|--start\tWake up remote server"
            echo -e "\t-m|--mac [mac]\tsetting MAC from remote server in order to use with -w"
            echo -e "\t-r|--remote [serveradress]\tsetting remote server in order to use with -s"
            exit 1
            ;;
  esac
  shift
done

Übergibt man mit -m|–mac die MAC-Adresse des entfernten Rechners, so wird er aufgeweckt. Damit man ihn auch wieder remote ausschalten kann, wird eine ssh-Session initiert und ein halt gesendet (-s|–halt|–stop). Verwendet man noch key-auth anstelle von Passwörtern, funktioniert es wie von Geisterhand.

Gezielt einen Rechner ein-/ausschalten

Um einen bestimmten Rechner gezielt ein- und ausschalten zu können, kann man obiges Script auf ein Minimum reduzieren. Die Variablen $PC und $MAC müssen entsprechend dem Zielrechner gesetzt werden.

#!/bin/sh
 
PC=''
MAC=''
 
case $1 in
     -s|--halt|--stop)
            echo "shutting down remote server..."
            ssh root@$PC halt
            ;;
     -w|--wol|--start)
            echo "waking up remote server..."
            wol -v $MAC
            ;;
     *)
            echo "$0"
            echo -e "Licence: GPL, 2009 by Udo Neist\n"
            echo "Usage: $0"
            echo -e "\t-s|--halt|--stop\tShutting down remote server"
            echo -e "\t-w|--wol|--start\tWake up remote server"
            exit 1
            ;;
esac

Obiges Script würde eine ganze Weile warten (Timeout), falls der Rechner nicht erreichbar ist. Überlässt man die Prüfung der Erreichbarkeit ping, so kann man das ganze erheblich abkürzen. Im nachfolgenden Einzeiler wartet ping zwei Sekunden (-w 2). Bei Erfolg wird der Zielrechner ausgeschaltet, ansonsten eine Fehlermeldung ausgegeben.

ping -w 2 $PC && sh /usr/local/bin/wol_papers.sh -s || echo "shutdown failed, server not available."
wol.txt · Zuletzt geändert: 20.01.2013 10:21 von udo