Cronjob läuft nicht

german
ucs-4-2
cron

#1

Hallo zusammen,

ich habe gestern und heute versucht einen Cronjob anzulegen, allerdings läuft dieser nicht durch.
habe eine eigene Datei angelegt im Ordner /etc/cron.d, habe versucht diesen über die UCR anzulegen und auch in der Datei /etc/crotab.
In keiner Variante läuft er auch im Log /var/log/syslog ist nichts zu finden, alle anderen Cronjobs sind dort aufgeführt.

Folgender Befehl wurde genutzt:
45 20 * * * root getfacl -R -n /data > /data/Daten/06_EDV/04_Backup/acl-backup.txt

Vielen Dank!


#2

Moin,

wenn ein Cron-Job nicht ausgeführt wird, so liegt das oftmals an einem Syntax-Fehler in der entsprechenden Datei. Das muss nicht zwangsläufig der zuletzt eingefügte Befehl sein (das, was Sie gecshrieben haben, sieht soweit OK aus), das kann auch ein anderer sein.

Normalerweise schreibt Cron bei einem Syntaxfehler eine entsprechende Meldung ins Syslog, sobald die Datei das nächste Mal ausgewertet wird (also bei der nächsten Minute nach der Änderung).

Eine andere Möglichkeit ist, dass der Cron-Daemon gar nicht läuft. Werden denn andere Cron-Jobs ausgeführt?

Gruß
mosu


#3

Hi,

also im Syslog werden andere Cronjobs (UCS-Standard) aufgeführt, von daher gehe ich davon aus das diese auch laufen.

> Feb 16 10:40:01 fileserver CRON[2354]: (root) CMD (/usr/share/univention-ssl/ssl-sync >>/var/log/univention/ssl-sync.log 2>&1)
> Feb 16 10:45:02 fileserver CRON[2370]: (root) CMD (  [ -x /usr/lib/univention-pam/ldap-group-to-file.py ] && /usr/lib/univention-pam/ldap-group-to-file.py --check_member)
> Feb 16 10:45:02 fileserver CRON[2372]: (root) CMD (/usr/sbin/univention-mrtg)
> Feb 16 10:45:02 fileserver CRON[2395]: (root) CMD (if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi)

#4

Huhu,

OK, er läuft, das ist schon mal gut :slight_smile:

Was passiert denn, wenn Sie die Datei, in dem der gewünschte Job steht, noch mal verändern und dann auf die nächste Minute warten? Normalerweise sollte dann so eine Meldung kommen:

Feb 16 10:55:01 master cron[1222]: (*system*) RELOAD (/etc/crontab)

Und wenn’s einen Syntaxfehler gibt, dann gibt’s so etwas:

Feb 16 10:56:01 master cron[1222]: (*system*) RELOAD (/etc/crontab)
Feb 16 10:56:01 master cron[1222]: Error: bad day-of-week; while reading /etc/crontab
Feb 16 10:56:01 master cron[1222]: (*system*) ERROR (Syntax error, this crontab file will be ignored)

Gruß
mosu


#5

Huhu nochmals,

Was man noch testen sollte:

  1. Gibt’s das Verzeichnis wirklich? ls -ld /data/Daten/06_EDV/04_Backup
  2. Kommt das evtl. über NFS, und ist root-squash an — sprich darf root überhaupt in das Verzeichnis schreiben? touch /data/Daten/06_EDV/04_Backup/testme.txt
  3. Wird der Befehl vielleicht ausgeführt, und es gibt Fehlermeldungen, die dann als Mail an root verschickt werden? Standardmäßig landen Mails an root in /var/spool/mail/systemmail

Gruß
mosu


#6

Hi,

der Reload steht jetzt drin:
Feb 16 10:58:01 fileserver cron[898]: (*system*) RELOAD (/etc/crontab)

Dadurch hab ich auch die anderen Einträge gefunden, teils mit Fehlermeldung…
Einmal neue Zeile vergessen (Anfängerfehler):see_no_evil:
einmal zeigt er mir Error: bad minute; while reading /etc/cron.d/univention-ucr-cronjobs
Diese kann ich nicht nachvolziehen, weil er mir jetzt in der Crontab keinen Error anzeigt…

Zum Verzeichnis passt alles, habe die acl-backup.txt ja händisch anlegen können mit:
getfacl -R -n /data > /data/Daten/06_EDV/04_Backup/acl-backup.txt
angemeldet als root.


#7

Huhu,

:+1: ja fein, dann sollte der Job ja heute Abend laufen.

Gruß
mosu


#8

jetzt lief es durch…:tada::tada::tada:
hab es jetzt wieder auf 20:45 gesetzt und warte mal ab ob es auch heute Abend läuft.

Vielen Dank!