Hallo,
hier die neue Version meiner alternativen "VDR-Aufwachlösung".
Angefangen hatte es in diesem Thread: [PoC]: WakeMeUp - beliebige (VDR-)Rechner lassen sich per WoL wecken... .
Nunja, entgegen meinem ursprünglichen Willen habe ich mich nun doch noch hingesetzt und das Ganze nochmal gründlich überarbeitet...
Ciao,
Matze
Beschreibung:
WakeMeUp benutzt ausschließlich Wake-on-LAN, um Rechner aufzuwecken.
Das setzt natürlich voraus, dass man einen Rechner zur Verfügung hat, der ständig läuft - bei mir ist das zum Beispiel die Linux-Firewall.
Rein von der Theorie her funktioniert diese Lösung auch über Netzgrenzen (also auch Internet) hinweg - das habe ich allerdings noch nicht getestet.
Edit: Seit Server Version 0.13 bzw. Client Version 0.8 können nun alternativ auch alle vom Programm 'sispmctl' unterstützten USB-Steckdosenleisten angesteuert werden.
Die entsprechende Beschreibung dazu ist in diesem Beitrag zu finden. Leider kann ich den Beitrag nicht mehr bearbeiten, um die nunmehr alten Versionen zu löschen.
(2008-02-23)
Funktionsweise:
Der Client - z.B. ein VDR - baut eine Verbindung zum Server auf, teilt diesem seinen nächsten Aufwachtermin mit und fährt sich anschließend herunter.
Ist der Zeitpunkt erreicht, sendet der Server ein sogenanntes 'Magic'-Paket an die MAC-Adresse vom Client, welcher daraufhin aufwacht.
Der Vergleich mit einem Hotelgast, der die Rezeption mit einem Weckruf beauftragt, trifft zu 100% den Nagel auf den Kopf
Voraussetzungen:
Server
- Perl
- Programm 'at'
- Programm 'arp' oder alternativ: MAC-Adressen fix eintragen
Client
- sinnvollerweise VDR
- Programm 'netcat'
Installation auf Debian-basierten Systemen:
Server
- apt-get update
- apt-get install perl libgetopt-mixed-perl libsys-syslog-perl at net-tools
- apt-get install wakeonlan (optional)
- apt-get install sispmctl (optional)
- dpkg -i wakemeup-server_0.14_i386.deb
- wakemeup-server --help (für Hilfe zu den Optionen)
- nano /etc/default/wakemeup-server (evtl. Optionen anpassen, ENABLED=1 setzen)
- /etc/init.d/wakemeup-server start
Client
- apt-get update
- apt-get install netcat
- dpkg -i vdr-addon-wakemeup_0.9_i386.deb
- nano /etc/default/vdr-addon-wakemeup (IP des Servers anpassen, ENABLED=1 setzen)
Installation des Servers auf anderen Systemen (ungetestet):
- Perl installieren und folgende Bibliotheken: IO::Socket, Sys::Syslog, Getopt::Long
- arp, at installieren
- wakeonlan installieren (optional)
- sispmctl installieren (optional)
- tar -xzf wakemeup-server_0.14.tar.gz
- cd wakemeup-server-0.14
- cp wakemeup.pl /usr/bin/wakemeup-server
- cp wakeup.pl /usr/bin/wakeup
- wakemeup-server --help (für Hilfe zu den Optionen)
Änderungen seit den letzten Versionen:
- Änderungen an den Timern des Clients werden nun vollständig berücksichtigt (vorher wurde der Client bei nachträglich veränderten Timern auch zu allen anderen Zeiten geweckt)
- Löschen eines Timers auf dem Client hat nun auch ein Löschen auf dem Server zur Folge (wurde vorher gar nicht berücksichtigt)
- nahezu komplette Kontrolle über das Programm 'at' (vorher konnten nur neue Jobs hinzugefügt werden)
- Verbesserungen in den Funktionen zur Berechnung des Aufwachzeitpunkts (vorher gab es teilweise Toleranzen von bis zu 1 Minute)
- Verbesserungen im PID-File-Handling (neu u.a.: Nutzung von Datei-Locks, 'stale' Pidfiles werden erkannt etc.)
- Prozess-Priorität des Dienstes kann beeinflusst werden
- BugFix: Online-Hilfe lässt sich nun auch als normaler User aufrufen
- BugFix: Server läßt sich nun nicht mehr mit nmap o.ä. abschießen (war unschön, aber nicht sicherheitskritisch)
- Logging im Shutdown-Hook hinzugefügt, diverse kleinere Fehler korrigiert
- Sonstiges: Code aufgeräumt, kleinere Fehler korrigiert, Tonnen von überflüssigem Code entsorgt...
Edit: Server-Version 0.14 und Client-Version 0.9 angehangen, Changelog s.u..
(2008-03-10)