crontab - Befehl wird nicht ausgeführt?

maddoc

Neuer User
Mitglied seit
31 Mrz 2008
Beiträge
158
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich habe ein Script erstellt welches von crontab ausgeführt werden soll. Wenn ich das Script von Hand starte funktioniert alles mit crontab aber nicht. Crontab wird zwar gestartet aber das Script wird nicht ausgeführt.

Das Script "script.sh" liegt in /var/tmp
Rechte auf 750 gesetzt
In crontab folgendes eingetragen "50 02 * * * /var/tmp/script.sh (Soll jeden Tag 2:50 Uhr ausgeführt werden)

Das Script sieht folgender maßen aus:

Code:
#!/bin/sh
/usr/bin/curl ..."und eine Befehlskette"

Was habe ich falsch gemacht??

Gruß Oli
 
Mir fällt nichts falsches auf. Die Stunden schreibe ich aber immer ohne führende "0". Läuft crond überhaupt? Und schau mal was im Syslog ausgegeben wird
 
Mit dem Befehl "ls -u /var/tmp/script.sh" kannst Du feststellen, wann die Datei zuletzt gelesen wurde. Wenn Du in crontab einen Zeitpunkt einstellst, der wenige Minuten ind er Zukunft liegt (bezüglich der Zeit auf der Box), dann kannst Du danach schauen, ob sich die Zeit des letzten Zugriffs geändert hat. Abhängig vom Ergebnis kann man schauen, warum das Skript nicht aufgerufen wird bzw. warum es nicht funktioniert, wenn es von cron aufgerufen wird.
Du kannst vorher auch noch den Befehl "echo Test > /var/tmp/test.txt" im Skript einfügen, noch vor dem Aufruf von curl. Wenn die Datei erstellt wird, zeigt das, daß das Skript aufgerufen wurde.
 
Hallo,

also mit dem Befehl von dir wird irgendwie nichts angezeigt. Hänge mal ein Bild an was nach den Crontab und dem Befehl in der Ausgabe erscheint.
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    31.6 KB · Aufrufe: 49
Also cron versucht anscheinend die Datei aufzurufen, und der Befehl hätte "ls -lu /var/tmp/script.sh" lauten sollen.
Hattest Du die Echo-Anweisung eingefügt, und wurde die Datei erstellt?
 
Weiß nicht an was es lag aber wir hatten gestern Stromausfall wo die Box natürlich neu gestartet wurde und siehe da, nichts anderes gemacht als sonst und jetzt gehts. Danke für deine Unterstützung.

Gruß Oli
 
Befehl wird nur bedingt ausgeführt

Hallo,

es gibt bei mir ein Problem mit Cron. Cron führt den Befehl nach einigen Stunden nicht aus, allerdings beim direkten Testen. Zwischen dem Testen und dem eigentlichen Schaltungswunsch am nächsten morgen liegt die Zwangstrennung und Chronyd.
Zum konkreten Beispiel, dabei soll das Wlan zeitgesteuert Samstags und Sonntags eingeschalten werden (AVMs Nachtschaltung kennt ja kein Wochenende):

Dieser Teil funktioniert beim Testen
CRONTAB schrieb:
30 10 * * 6-7 /etc/init.d/rc.net wlanstart

Code:
[FONT="Arial"]Zitat von [B]SYSLOG[/B][/FONT]
Dec 19 10:28:37 fritz cron.err crond[1721]: crond (busybox 1.12.4) started, log level 8
Dec 19 10:28:37 fritz cron.err crond[1721]: user root: parse error at 6-7
Dec 19 10:30:01 fritz cron.err crond[1721]: USER root pid 2187 cmd /etc/init.d/rc.net wlanstart
Dec 19 10:30:27 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: associated
Dec 19 10:30:27 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx WPA: pairwise key handshake completed (RSN)
Dec 19 10:30:27 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx WPA: received EAPOL-Key 4/4 Pairwise with unexpected replay counter
Dec 19 10:30:27 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx WPA: received EAPOL-Key 4/4 Pairwise with unexpected replay counter
Dec 19 10:30:29 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: associated
Dec 19 10:30:29 fritz daemon.info hostapd: ath0: STA xx:xx:xx:xx:xx:xx WPA: pairwise key handshake completed (RSN)

Dieser Teil funktioniert nicht mehr

Passe ich in der Crontab die Zeiten auf meine tatsächlich benötigten in den Folgetagen an, so funktioniert das Starten des Wlans zu diesen Zeiten nicht mehr. Der Befehl wird laut Syslog jedoch ausgeführt.
CRONTAB schrieb:
30 8 * * 6-7 /etc/init.d/rc.net wlanstart

Code:
Dec 20 05:55:49 fritz daemon.info chronyd[1812]: Source 82.143.xxx.xxx offline
Dec 20 05:55:49 fritz daemon.info chronyd[1812]: Source 77.37.6.59 offline
Dec 20 05:55:49 fritz daemon.info chronyd[1812]: Source 82.209.xxx.xxx offline
Dec 20 05:55:50 fritz daemon.info chronyd[1812]: Source 82.143.xxx.xxx online
Dec 20 05:55:50 fritz daemon.info chronyd[1812]: Source 77.37.6.59 online
Dec 20 05:55:50 fritz daemon.info chronyd[1812]: Source 82.209.xxx.xxx online
Dec 20 06:34:01 fritz cron.err crond[23304]: user root: parse error at 6-7
Dec 20 07:34:01 fritz cron.err crond[23304]: user root: parse error at 6-7
Dec 20 08:30:01 fritz cron.err crond[23304]: USER root pid 31016 cmd /etc/init.d/rc.net wlanstart
Dec 20 08:33:01 fritz cron.err crond[23304]: user root: parse error at 6-7

Morgens war noch kein Client angeschaltet, daher fehlt das WPA-Händeschütteln. Die Parse-Meldung kann auch nicht verantwortlich sein, sonst würde es beim Testen auch nicht funktionieren. Getestet habe dies mit dem Trunk (Anhang anzeigen config.txt) in der Kombination 76er sowie 80er Firmware auf der 7270v2.
An welcher Stelle sollte ich ansetzten? :gruebel:
Sieht das eher nach einem Problem von Cron (mit Chronyd) oder rc.net aus?
 
Der cron kann anscheinend "6-7" nicht verarbeiten, Fang mal dort an und schau was passiert, wenn dort die richtige Syntax drinsteht. Vergiss nicht, ist die Busybox, und die ist an diversen Ecken ein wenig beschnitten gegenüber dem kompletten Services...
 
Jetzt funktioniert es.
Der Syntax für Cron ist in Ordnung. Ich konnte das Problem auf Chronyd einschränken. Bei einem Image mit Openntp (es wird der Chronyd-entfernen-Patch angewandt) läuft Cron auch nach der AVM-Funktion "Zwangstrennungzuvorkommen". Multid habe ich zum Zeitholen deaktiviert.

EDIT: Ich baute erneut ein Image incl. Chronyd und lasse Cron via Onlinechanged neu starten. Funktioniert ebenfalls und bestätigt obige Vermutung.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.