# Medi-WOL Autostart-System ## Übersicht Das Medi-WOL Autostart-System ermöglicht es, PCs automatisch zu bestimmten Zeitpunkten über Wake-on-LAN zu starten. Es verwendet die Standard-Crontab-Syntax für die Zeitplanung und integriert sich nahtlos in das bestehende Logging-System. ## Funktionen ### 1. **Autostart-Konfiguration pro PC** - **Crontab-Syntax**: Unterstützt alle Standard-Crontab-Ausdrücke - **Aktivierung/Deaktivierung**: Einzelne PCs können unabhängig voneinander konfiguriert werden - **Standardwert**: "30 7 * * Mon-Fri" (Mo-Fr um 7:30 Uhr) ### 2. **Crontab-Syntax-Unterstützung** - **Minute**: 0-59 - **Stunde**: 0-23 - **Tag**: 1-31 - **Monat**: 1-12 - **Wochentag**: 0-6 (0=Sonntag) oder Mon, Tue, Wed, Thu, Fri, Sat, Sun ### 3. **Automatische Ausführung** - **Scheduler**: Läuft im Hintergrund und prüft jede Minute - **Logging**: Alle automatischen WOL-Ereignisse werden mit Trigger "cron" protokolliert - **Fehlerbehandlung**: Robuste Fehlerbehandlung bei WOL-Ausführung ## Verwendung ### 1. **PC mit Autostart hinzufügen** 1. Navigieren Sie zur Hauptseite 2. Füllen Sie alle Pflichtfelder aus (Name, MAC, IP) 3. Geben Sie den gewünschten Crontab-Ausdruck ein 4. Aktivieren Sie die Checkbox "Autostart aktiv" 5. Klicken Sie auf "PC hinzufügen" ### 2. **Autostart bearbeiten** 1. Klicken Sie auf "Bearbeiten" bei dem gewünschten PC 2. Ändern Sie den Crontab-Ausdruck oder die Aktivierung 3. Klicken Sie auf "Speichern" ### 3. **Crontab-Ausdrücke verstehen** - **Hilfe**: Klicken Sie auf den Link zu [Crontab-Guru](https://crontab.guru/) - **Beispiele**: - `30 7 * * Mon-Fri` = Mo-Fr um 7:30 Uhr - `0 8 * * 1-5` = Mo-Fr um 8:00 Uhr - `0 9 * * 0,6` = Sa und So um 9:00 Uhr - `*/15 * * * *` = Alle 15 Minuten ## Technische Details ### 1. **Datenbankstruktur** ```sql ALTER TABLE pcs ADD COLUMN autostart_cron TEXT DEFAULT '30 7 * * Mon-Fri'; ALTER TABLE pcs ADD COLUMN autostart_enabled BOOLEAN DEFAULT 0; ``` ### 2. **Scheduler-Implementierung** - **Go-Routine**: Läuft parallel zum Hauptserver - **Ticker**: Prüft jede Minute auf auszuführende Aufgaben - **Crontab-Parser**: Eigene Implementierung für häufige Anwendungsfälle - **Graceful Shutdown**: Sauberes Beenden bei Server-Herunterfahrt ### 3. **Crontab-Parser-Features** - **Wildcards**: `*` für "alle" - **Bereiche**: `1-5` für "1 bis 5" - **Wochentage**: `Mon-Fri` für "Montag bis Freitag" - **Einzelwerte**: `30` für "nur 30" ## Beispiele ### **Geschäftliche Anwendungen** - **Büro-PCs**: `30 7 * * Mon-Fri` - Startet alle Büro-PCs Mo-Fr um 7:30 - **Server**: `0 6 * * *` - Startet Server täglich um 6:00 - **Backup-Systeme**: `0 2 * * 0` - Startet Backup-Systeme sonntags um 2:00 ### **Private Anwendungen** - **Home-Office**: `0 8 * * Mon-Fri` - Startet Arbeits-PC Mo-Fr um 8:00 - **Gaming**: `0 18 * * Fri-Sun` - Startet Gaming-PC Fr-So um 18:00 - **Medien-Server**: `0 20 * * *` - Startet Medien-Server täglich um 20:00 ## Sicherheit und Monitoring ### 1. **Logging** - Alle automatischen WOL-Ereignisse werden protokolliert - Trigger wird als "cron" gekennzeichnet - Vollständige Protokollierung in der Logs-Seite ### 2. **Fehlerbehandlung** - WOL-Fehler werden geloggt, aber nicht an den Benutzer weitergegeben - Scheduler läuft weiter, auch wenn einzelne WOL-Befehle fehlschlagen - Robuste Behandlung ungültiger Crontab-Ausdrücke ### 3. **Performance** - Scheduler prüft nur alle PCs mit aktiviertem Autostart - Effiziente Datenbankabfragen - Minimale Server-Belastung ## Erweiterungen ### **Zukünftige Features** - **Webhook-Integration**: Benachrichtigungen bei erfolgreichen/fehlgeschlagenen Autostarts - **Erweiterte Crontab-Syntax**: Unterstützung für komplexere Ausdrücke - **Zeitzonen**: Lokale Zeitzonen-Unterstützung - **Bedingte Ausführung**: Nur starten wenn PC offline ist ### **Monitoring und Alerting** - **E-Mail-Benachrichtigungen**: Bei fehlgeschlagenen Autostarts - **Dashboard**: Übersicht aller geplanten Autostarts - **Statistiken**: Erfolgsrate und Ausführungszeiten ## Fehlerbehebung ### **Häufige Probleme** 1. **PC startet nicht**: Überprüfen Sie MAC-Adresse und Netzwerk-Konfiguration 2. **Falsche Zeit**: Überprüfen Sie den Crontab-Ausdruck mit Crontab-Guru 3. **Scheduler läuft nicht**: Überprüfen Sie die Server-Logs ### **Debugging** - **Server-Logs**: Zeigen alle Scheduler-Aktivitäten - **Logs-Seite**: Zeigt alle WOL-Ereignisse (auch automatische) - **Crontab-Validierung**: Verwenden Sie Crontab-Guru für Tests ## Support ### **Hilfreiche Links** - [Crontab-Guru](https://crontab.guru/) - Online-Crontab-Editor und Validator - [Cron-Wiki](https://en.wikipedia.org/wiki/Cron) - Detaillierte Crontab-Dokumentation - [Crontab-Examples](https://crontab.guru/examples.html) - Häufige Crontab-Beispiele ### **Kontakt** Bei Fragen oder Problemen wenden Sie sich an das Medi-WOL-Entwicklungsteam.