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