Server per WOL-Cron (Raspberry) wecken

  • Nabend zusammen,

    ich sehe anscheinend den Wald vor lauter Bäumen nicht, denn ich bin gerade zu blöd, meinen Unraid Server per WOL über einen Raspi zu wecken.
    Das Wecken funktioniert an sich, aber mein Cronjob will einfach nicht funktionieren.

    Vielleicht kann mir ja wer von euch auf die Sprünge helfen:
    Raspi OS: Raspbian (Debian Buster)

    Mein gebasteltes Script zum Wecken (funktioniert per SSH aus der Konsole gestartet):

    Bash: wakeUnraid.sh
    #!/bin/bash
    ### Script for waking up a WOL-Server
    ### 'wakeonlan' package has to be installed for this to work
    
    
    ### CONFIG ###
    MAC="00:1B:21:3A:52:A4"
    ### DO NOT EDIT THIS HERE ###
    wakeonlan $MAC

    Meine crontab (wird von einem User ohne sudo-Rechte ausgeführt):


    Das Script ist wie gesagt ausführbar.
    Habe bereits das syslog-Log nach CRON gegrept und konnte keine Infos zu meinem Script darin finden, scheint so, als würde es also überhaupt nicht von cron ausgeführt werden.

    Wo ist denn der Fehler? Stehe irgendwie auf dem Schlauch ?(

  • hi
    Ich Bezug auf unraid kann ich nichts sagen.

    Zitat

    0 2 * * 0 /home/wakiwake/wakeUnraid.sh

    Soll dein Server nur am Sonntag um 02:00 geweckt werden ?( siehe dazu cron
    @edit Heißt dein User wakiwake oder ist das der Ordner, in dem dein Script liegt ?
    Wenn du erreichen möchtest, das wenn dein Raspi eingeschaltet wird auch dein unraid geweckt wird, würde ich es mit
    @reboot Dein Befehl versuchen.
    Desweiteren hast du mit crontab -e  deine crondatei bearbeitet ?

    Schau dir auch mal das Programm etherwake an, geht dann auch ohne Script. In deinem Fall hier noch mal schauen pi als "Wake on Lan" Server

    TschaU NEPO

    Einmal editiert, zuletzt von nepo (19. April 2020 um 20:28)

  • Danke für die schnelle Antwort @nepo.

    Ja, mein Server soll nur am Sonntag um 2 Uhr nachts zum Starten des Movers und zum SMART-Check der Platten gestertet werden. Ansonsten wird der Server bei Bedarf entweder per Handy-App oder automatisch beim Hochfahren des LibreElec NUCs gestartet.
    Der Benutzer, unter dem das Script läuft, also auch die crontab mit crontab -e bearbeitet wurde, heißt "wakiwake". Das Script liegt unter dem angegebenen Pfad im home-Verzeichnis von wakiwake.

    Der Pi läuft dauerhaft und soll neben einem pihole eben das automatische Wecken des Servers einerseits für den Mover und SMART-Check als auch am ersten des Monats zum Parity-Check übernehmen.

    etherwake lese ich mich mal ein, danke.

  • Hab Folgendes als root bei meine raspi unter crontab -e eingetragen
    55 23 5 * * /usr/sbin/etherwake hier:deine:Mac:Adresse:mit:Doppelpunkten

    da mein Unraid am 6. des Monats um 0 Uhr die parity checks macht, weckt der raspi den Server 5 Minuten vorher...


    Edit: wichtig, was mir zuerst Kopfzerbrechen macht, zumindest einmal, war, die Uhr am raspberry war noch auf Winterzeit eingestellt ^^
    Also, ggf. Die Zeit noch überprüfen am raspi

  • In deinem Syslog taucht dein cronjob nicht auf und vielleicht ein wenig aus der Luft gegriffen (bezüglich des Usernamens): Hast du extra einen User dafür angelegt ? Und wenn ja, ist er im normalen Betrieb überhaupt angemeldet, so daß er diesen cronjob ausführen kann ?
    Dann und im allgemeinen ist der Vorschlag von @AcidRain ,den cronjob als root auszuführen sinnvoll.

    Tschau nepo

  • vlt. hilft es den kompletten Pfad zu "wakeonlan" ins script zu stecken und - bin da unsicher - ob die Kopfzeile vom script so passt, denn auf einer x86-Installation ergibt

    set | grep -i shell

    => SHELL='/bin/sh'

    also könnte die Änderung zu #!/bin/sh statt ...bash helfen.

    vlt. auch:
    man crontab => crontab -l
    man cron => [definition=12,0]debug[/definition] parameter -x

  • moin

    Zitat von JoeAverage

    vlt. hilft es den kompletten Pfad zu "wakeonlan" ins script zu stecken und - bin da unsicher - ob die Kopfzeile vom script so passt, denn auf einer x86-Installation ergibt

    Laut @Dr_Cox1911 funktioniert das Script so wie er es geschrieben hat.
    Meines Erachtens liegt der Fehler beim crontab

    Zitat von Dr_Cox1911

    Habe bereits das syslog-Log nach CRON gegrept und konnte keine Infos zu meinem Script darin finden, scheint so, als würde es also überhaupt nicht von cron ausgeführt werden.

    Selbst wenn das Script als solches falsch wäre, sollte cron es versuchen" auszuführen" und das im Log dementsprechend anzeigen. Da im Log aber nichts steht, wird dieser crontab nicht ausgeführt.

    Ich würde es (vielleicht) testweise wirklich mal mit root als Auszuführender versuchen, nur um die Fehlerquelle einzugrenzen.

    Tschau nepo

  • Wie oben schon gesagt, es liegt sicher daran, dass nicht der komplette Pfad zu executeable angegeben wurde. Glaube cron läuft unter einem anderen User der ggf andere Umgebungsvariablen hat.
    auch kann man mal mit '>' die Ausgabe in eine Datei umleiten. Dort sollte dann drinstehen, warum Befehl nicht korrekt ausgeführt wird

  • auch kann man mal mit '>' die Ausgabe in eine Datei umleiten. Dort sollte dann drinstehen, warum Befehl nicht korrekt ausgeführt wird

    Dann kann mal sehen ob und wenn ja was passiert!

    Und Alternativ könntest du per Crontab direkt den etherwake/wakeonlan Befehl senden ohne script - erstmal mit root und >

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!