staging.inyokaproject.org

cron job jede Minute

Status: Ungelöst | Ubuntu-Version: Server 22.04 (Jammy Jellyfish)
Antworten |

gnude

Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: Zähle...

Hallo ich möchte gern mittels cron ein Programm jede Minute ausführen lassen. Das Program 1.sh startet aber nicht. Meine /etc/crontab sieht wie folgt aus:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
* * * * * root /bin/bash /daten/scripte/1/1.sh >> /daten/log/info.txt

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Hallo!

Ubuntu ist seit kurzem (8 Jahre) zu systemd migriert. Daher systemd/Timer Units nutzen oder systemd-cron aktivieren/prüfen, wenn es unbedingt cron sein muss.

gnude

(Themenstarter)
Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: Zähle...

Aber die Verzeichnisse /etc/cron.daily und /etc/cron.hourly werden doch auch noch abgeabeitet.....???

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Wenn du bereits systemd-cron verwendest, ja. Dann werden über den crontab generator deine crontabs in systemd-units übersetzt. cron selbst funktioniert nicht unter systemd, es sei denn man lässt das parallel dazu laufen (keine Erfahrungen mit ob das dann knallt — war zumindest eine zeitlang unter Debian so umgesetzt, geht also). Wenn also etwas nicht funktioniert ist es sinnvoller das direkt als unit zu schreiben, anstatt den Übersetzer zu debuggen.

Natürlich muss das Script als solches auch laufen, das können wir aber mangels Informationen hier nicht sehen. Teste einen einfachen cronjob wie $(date) >> /tmp/cronjobdate und guck, ob es läuft. Wenn ja, ist der generator aktiv und funktioniert. Dann liegt es am Script.

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

Aber die Verzeichnisse /etc/cron.daily und /etc/cron.hourly werden doch auch noch abgeabeitet.....???

Ja, von systemd, siehe oben. D.h. du hast nur semi-viel Kontrolle darüber, wie was wann in eine systemd Timer Unit übesetzt wird.

Abgesehen davon, dass systemd schon lange Standard ist, hat es auch den Vorteil, dass die Logs ins zentrale Journal von systemd fließen, was du mittels journalctl abfragen kannst. Ist bei deiner möglichen Fehlersuche hilfreich.

Gruß, noisefloor

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

gnude schrieb:

[…]
* * * * * root /bin/bash /daten/scripte/1/1.sh >> /daten/log/info.txt

Das sollte so funktionieren unter diesen Voraussetzungen:

  • Die Datei /daten/scripte/1/1.sh existiert.

  • Sie enthält ein fehlerfreies Shell-Skript in der Syntax der Bash.

  • Die Zeile in der crontab ist nicht die letzte bzw. sie endet mit einer Zeilenschaltung.

Ob es allerdings Sinn macht, so etwas (jede Minute ein Skript starten) zu machen, bezweifle ich, da es dafür modernere Methoden gibt.

Antworten |