WOL wakeComputer crontab

Hallo,
wir haben nun ein skript, mit dem ich PCs über WOL starten kann

Auf dem Server als root funktioniert folgende Befehlszeile:
/opt/wakeComputer -i 10.3.11.1

Jetzt hätte ich gern diese Zeile in der Crontab stehen.
Hier mein Versuch diese Zeile in die Datei /etc/crontab zu schreiben:
30 5 * * * 1-5 /opt/wakeComputer -i 10.3.11.1

Leider startet mein PC aber nicht um 5:30Uhr (also er startet gar nicht)

Habs auch schon über crontab -e versucht (dort finden sich aber einstellungen noch von userer 6.x er Version) hat aber auch nicht zum Erfolg geführt.

Auch service cron reload hat nicht zum Erfolg geführt.
Hat jemand eine Idee?

Viele Grüße
Matthias

Hallo Michael,

zunächst würde ich das in eine eigene Datei nach /etc/cron.d schreiben. Achtung, da muss dann noch ein Username dazu.

Der erste Verdacht, wenn ein Skript von der Kommandozeile funktioniert aber nicht per Cron, ist ein anderer Suchpfad. Ergänze doch mal in Deinem Skript bei allen Befehlen den kompletten Pfad.

Also z. B. anstatt llnbo-remote so etwas wie /usr/bin/linbo-remote. Den korrekten Pfad kannst Du mit „which linbo-remote“ herausfinden.

Und dann bietet es sich natürlich an, eine Kontrollausgabe zu loggen, also ein >>/var/log/test.log anzuhängen.

Herzliche Grüße

Jörg

Hallo Matthias,

Hier mein Versuch diese Zeile in die Datei /etc/crontab zu schreiben:
30 5 * * * 1-5 /opt/wakeComputer -i 10.3.11.1

das kann so nicht funktionieren.
In der crontab muss der Nutzer mit angegeben werden.
Versuch mal:
30 5 * * * 1-5 root /opt/wakeComputer -i 10.3.11.1

LG

Holger

Hallo Holger,
hab ganz vielen Dank, werde es nach dem Unterricht heute Nachmitta gleich testen.
Viele Grüße - Matthias

Hallo,

man sollte die systemweite crontab normalerweise mit
crontab -e
als root editieren.
Sicherheitshalber dann:
systemctl restart cron
ausführen nach dem Editieren.

Du hast zudem einen Fehler in den Zeitangaben, nämlich einen Stern * zuviel:
30 5 * * 1-5 root /opt/wakeComputer -i 10.3.11.1
ist richtig.
Und dann muss in jedem Fall eine Leerzeile unter der letzten Zeile beginnen.

L.G.
Christoph

Hallo Christoph,
super! - Vielen Dank - jetzt funktioniert es :slight_smile:

Viele Grüße
Und nochmals vielen Dank für die superschnelle Hilfe

Hallo zusammen,
jetzt muss ich mich doch leider nochmal melden.
Als ich die besagte Zeile so mit
crontab -e
eingetragen hatte, gespeichert (Leerzeile am Ende)
und
systemctl restart cron
angestoßen hatte, ist der betreffende Rechner über wol hochgefahren.

Danach hab ich dann noch einige Zeilen für unsere „Räume“ hinzugefügt.
Jetzt gibt es keine Reaktion mehr.
Auch wenn ich wieder die anderen Zeilen auskommentiere, bekomme ich den Testrechner mit besagter Zeile nicht mehr an.

Sollte nach dem Ausführen von
systemctl restart cron
irgend eine Bestätigung erscheinen?

Viele Grüße
Matthias

Hallo Jörg,
vielen Dank auch für deine Antwort.
Der Pfad /opt/wakeComputer stimmt so.

Wie kann ich denn eine Kontrollausgabe loggen?
Schreibe ich
/var/log/test.log
so einfach am Ende in crontab -e ??

Viele Grüße Matthias

>> /var/log/test.log

Am Ende der betreffenden Zeile

Hallo,
Eine Datei test.log in /var/log wurde nicht angelegt
die Zeile in crontab -e sieht so aus:
42 16 * * 1-5 root /opt/wakeComputer -i 10.3.11.1 /var/log/test.log

Hier die Meldung über den Status (cron):
root@server:/# systemctl status cron
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-03-17 16:39:50 CET; 3min 11s ago
Docs: man:cron(8)
Main PID: 10188 (cron)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/cron.service
└─10188 /usr/sbin/cron -f

Mär 17 16:39:50 server.linuxmuster.lan systemd[1]: Started Regular background program processing daemon.
Mär 17 16:39:50 server.linuxmuster.lan cron[10188]: (CRON) INFO (pidfile fd = 3)
Mär 17 16:39:50 server.linuxmuster.lan cron[10188]: (CRON) INFO (Skipping @reboot jobs – not system startup)
Mär 17 16:42:01 server.linuxmuster.lan CRON[10239]: pam_unix(cron:session): session opened for user root by (uid=0)
Mär 17 16:42:01 server.linuxmuster.lan CRON[10240]: (root) CMD (root /opt/wakeComputer -i 10.3.11.1 /var/log/test.log)
Mär 17 16:42:01 server.linuxmuster.lan CRON[10239]: (CRON) info (No MTA installed, discarding output)
Mär 17 16:42:01 server.linuxmuster.lan CRON[10239]: pam_unix(cron:session): session closed for user root
root@server:/#

Viele Grüße Matthias

Hallo Matthias,

vorsicht, wenn du mit WOL arbeitest.
Dass ein Rechner durch WOL startet funktioniert normalerweise nur unter
bestimmten Voraussetzungen.

  1. der Rechner wurde ordnungsgemäß aus einem ordentlichen Betriebsystem
    heruntergefahren
  2. der Treiber des Betriebsystems hinterläßt die Netzwerkkarte beim
    Herunterfahren im richtigen zusatand.
  3. das BIOS/UEFI ist korrekt konfiguriert
  4. die Switches verhalten sich korrekt
  5. der Rechner wurde nicht vom Strom getrennt.

Damit will ich sagen: startet ein Rechner trotz deine cron Zeile nicht,
so kann das an vielem liegen, nicht nur an deinem cron.

Warum nimmst du eigentlich nicht linbo-remote -w …
Das hab ich seit Jahren in meiner crontab drin stehen: mit dem script
schultag.sh von Jesko, damit nciht immer geweckt wird: tut wunderbar.

LG

Holger

Hallo Holger,

zu den Punkten 1 bis 5:
Über die Komandozeile kann ich den Rechner so ja starten, und einmal hat es seltsamerweise ja geklappt.
Nur nachdem ich dann die Zeilen, die ich fälschlicherweise zuerst in crontab untergebracht habe dort gelöscht und in crontab -e eingetragen habe, geht nichts mehr.

Zu linbo-remote -w…
Ja so habe ich das mit der 6er Version immer gemacht.
mit V7 und ner sophos ging das wegen der sophos und der Netztrennung so nicht mehr.
Daher hat uns unser Dienstleister mit Hilfe einer bekannten Firma hier die Sophos so eingestellt, dass das doch wieder geht.
Und dazu habe ich dann genau dieses skript (wakeComputer) bekommen.
Daher nutze ich das jetzt auch.

Na dann bleibt mir nur unseren Dienstleister wieder zu fragen… und dann irgendwann vielleicht fragt der bei der bekannten Firma nach und irgendwann kommt dann die Hilfe zu uns.

Dachte ich könnte das hier direkt lösen - schade :confused:

Hallo Matthias,

die Zeile in crontab -e sieht so aus:
42 16 * * 1-5 root /opt/wakeComputer -i 10.3.11.1 /var/log/test.log

… das hast du falsch verstanden.
Die /etc/crontab ist die vom System: da mußt du den aufrufenden
Usernamen (root) mitgeben.
crontab -e editiert die cronaufträge des users, der crontab -e aufruft
(jeder hat sein eigenen cron).
Da darfst du den Usernamen nicht rein schreiben: das wäre ja auch redundant.
Außerdem: würdest du da den falschen reinschreiben kann das nicht
ausgeführt werden.

LG

Holger

Hallo Holger,
danke für deine Geduld.
Oh, ok (so ist das wenn man zu wenig in der Materie steckt), sorry.
Ja, jetzt startet der PC über den cron-job :))
Uff, dann hat das jetzt ja heute doch noch geklappt.

Die Zwanzig anderen Zeilen tippe ich dann morgen in die crontab -e Editierumgebung.
Blöderweise kann man dort nichts über die Zwischenablage rein kopieren.
Aber das soll jetzt nicht mehr das Problem sein.

→ Einfügen aus Clipdatei hat mir dabei geholfen.
Hoffe dass das jetzt nicht die Datei beschädigt…
Wir werden morgen sehen :wink:

Vielen Dank Dir - und allen anderen.
Viele Grüße Matthias

Hallo Matthias,

Tip: Von einem Linux-Rechner per ssh auf den Server zugreifen, dann gehts auch über die Zwischenablage. Von Windows-Rechnern kannst Du Putty benutzen, dann gehts auch mit der Zwischenablage.

Gruß

Alois

Hallo Matthias,

Ich habe die „>>“ exemplarisch eingefügt. Ds ist die Umleitung der Ausgabe in die gewünschte Datei.

LG Thorsten

Hallo Matthias,

Dachte ich könnte das hier direkt lösen - schade :confused:

… ich verstehe nicht: es geht doch jetzt, oder?

Und zu linbo-remote geht nicht: ich verstehe nicht, was das mit der
Netzsegmentierung zu tun hat.
Die hab ich auch seit Jahren: und ich kann WOL und linbo-remote trotzdem
nutzen …
Das hängt also nicht zwingend zusammen.
Dass linbo-remote grundsätzlich nicht geht, wenn man die sophos auch als
L3 Router zur Netzsegmentierung einsetzt hab ich auch noch nicht gehört
… könnte aber sein: ich weiß das nicht so genau, weil ich einen Cisco
Switch als L3 Router einsetze.
Den mußte ich halt richtig konfigurieren (da gibt es sogenannte
„Helper“, damit WOL geht …).

LG

Holger

Lieber Matthias -

Na, da brauchst Du Dich nicht zu entschuldigen, man muss sich tatsächlich erst einmal in die merkwürdige bash-Syntax „einfuchsen“ - ging mir genau so.

Also, wie schon weiter oben geschrieben wurde, sind die beiden „>>“ von Dir übersehen worden: Sie bedeuten, dass am Ende einer entweder bestehenden oder anzulegenden Datei jeweils immer die Ausgabe angehängt wird.
Bei einer Schreibweise ohne „>>“ wird Deine Datei als Parameter übergeben - da sie nicht existiert, passiert an dieser Stelle auch kein Anlegen der Datei oder sonst etwas Sinnvolles.

Und das Problem mit mehreren cron-Zeilen könnte mit identischen Zeitpunkten zu tun haben.
Daher würde ich entweder Holgers „linbo-remote“-Befehl verwenden und / oder eine Datei anlegen, die dann über die EINE ZEILE in der crontab ausgeführt wird, also etwa so:

42 16 * * 1-5 root /opt/wakeAllComputers.sh

Die entsprechende Datei musst Du mit einem Editor, z.B. nano oder joe unter /opt/wakeAllComputers.sh anlegen. Die Datei-Endung „.sh“ ist dabei nicht zwingend, aber ich nenne alle meine eigenen Shell-Scripte so.

In der steht dann:
#!/bin/bash
wakeComputer -i 10.3.11.1
wakeComputer -i 10.3.11.2

…und so weiter …
(Wie gesagt, linbo-remote ist eleganter !)

Die erste Zeile muss in einem Shell-Script meist so gesetzt werden.
Diese Datei muss dann noch ausführbar gemacht werden, indem man das x-Flag setzt:

chmod a+x /opt/wakeAllComputers.sh

Testen ist jetzt viel einfacher, da Du nicht mehr auf den cron warten musst. Mit

/opt/wakeAllComputers.sh

müssten die von Dir gewünschten Effekte eintreten.

Liebe Grüße
Christoph

Hallo Christoph,

Wahrscheinlich hat wieder einmal die ask-Syntax zugeschlagen.
Meintest du diese Zeile?

#!/bin/bash

Die fehlte nämlich in deinem Post.

@matthiasL : Die genannte Zeile muss in einem bash-script als erste Zeile drin stehen, damit wird der Kommandozeilen-Interpreter festgelegt.

Beste Grüße

Thorsten

Huch - bei mir wird sie angezeigt - bei Euch nicht??

L.G.
Christoph