Remmina – Wake on LAN zu den Werkzeugen hinzufügen

Bei den Werkzeugen von Remmina handelt es sich um Shell-Skripte. Das bietet die Möglichkeit, Anpassungen vorzunehmen oder eigene Werkzeuge hinzuzufügen. So lässt sich beispielsweise “Wake on LAN” einfach ergänzen.

Zu beachten ist, das die MAC-Adresse des Servers benötigt wird, daraus ergibt sich, das man diese in der Profil-Konfiguration irgendwo hinterlegen muss. Ein ggf. ungenutztes Feld bietet sich da an, beispielsweise “Befehl vor der Verbindung ausführen”. Der dortige Wert wird als Variable “$precommand” an das Script übergeben.

Eine Datei unter “/usr/share/remmina/external_tools/remmina_wakeonlan.sh” anlegen und ausführbar machen. Folgendes einfügen:

!/bin/sh

. $(dirname $0)/functions.sh
settitle

wakeonlan $precommand

Unter Werkzeuge wird dann “wakeonlan.sh” angezeigt, das vorangestellte “remmina_” wird automatisch abgeschnitten oder unterschlagen wenn man so möchte.

Automatisches Wake on LAN vor der Verbindung

Interessant kann eine Kombi sein, gemeint ist via “Befehl vor der Verbindung ausführen” erstmal den Server anpingen, ist dieser nicht erreichbar dann “wakeonlan” ausführen, warten und nochmal von vorne. Sobald der Ping erfolgreich ist, wird das Skript beendet und die Verbindung aufgebaut.

Im Profil unter “Befehl vor der Verbindung ausführen” folgendes einfügen:

/usr/share/remmina/external_tools/remmina_wakeonlan.sh <MAC-Adresse>

Das eigentliche Skript sieht so aus:

#!/bin/sh

. $(dirname $0)/functions.sh
settitle

while ! ping -c3 $server # &>/dev/null
 do
  wakeonlan $1 
  sleep 5s 
done

Oder beides zusammen…

…soll heißen: Ein Skript, das sowohl für aus den Werkzeugen als auch für die Automatik verwendet werden kann:

#!/bin/sh

. $(dirname $0)/functions.sh
settitle

macaddress=$1

if [ -z "$macaddress" ]
 then
  wakeonlan $precommand
 else
  while ! ping -c3 $server # &>/dev/null
   do
    wakeonlan $macaddress
    sleep 5s 
  done
fi

Wird das Skript ohne Argument gestartet, also ist unter “Befehl vor der Verbindung ausführen” nur eine MAC-Adresse hinterlegt, dann wird direkt “wakeonlan” ausgeführt.

Wird das Skript hingegen mit einem Argument gestartet, also ist unter “Befehl vor der Verbindung ausführen” wie oben beschrieben der Pfad samt Skriptname und MAC-Adresse hinterlegt, dann wird der Server angepingt, bei nicht-erreichen “wakeonlan” ausgeführt und gewartet bis das Dieser anpingbar ist.

Quellen:

StackExchange – Unix & Linux – Bash ping script file for checking host availability

Ubuntuusers – Wiki – Bash-Skripting-Guide für Anfänger

Lifewire – How to Use the Linux Sleep Command to Pause a BASH Script

nixCraft – Bash Shell Find Out If a Variable Is Empty Or Not

Ryans Tutorials – If Statements!

1 Kommentar

  1. dieter

    Danke für den Gedankenanstoß.
    Bei mir heißt der wakeonlan Befehl wol und zudem ist zu beachten das auf Linux die mac Adresse mit Doppelpunkten separiert ist und Buchstaben klein geschrieben werden.
    Ich habe das Script erweitert damit das Ping funktioniert falls der Servername nicht nicht aufgelöst werden kann:
    ————————————————————————————–
    #!/bin/sh

    . $(dirname $0)/functions.sh
    settitle

    macaddress=$1
    server=`arp -a | grep $macaddress | awk ‘{ print $2 }’ | grep -o 192.168.100.[0-2][0-9]`

    if [ -z “$macaddress” ]
    then
    wakeonlan $precommand
    else
    while ! ping -c3 $server # &>/dev/null
    do
    wakeonlan $macaddress
    sleep 5s
    done
    fi
    —————————————————————————————–

    So funktioniert das bei mir problemlos

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑