↑ ↓ auswählen, Enter öffnen, Esc schließen

Cron

Cronjobs anlegen, prüfen und debuggen. Mit typischen Fallstricken wie fehlendem PATH und verschluckter Ausgabe. Passend dazu gibt es den Cron-Generator unter Werkzeuge.

11 Einzeiler: 9 harmlos, 2 vorsicht, 0 destruktiv

Alle Skripte aus cron.daily sofort ausführen

#run-parts --verbose /etc/cron.daily
vorsicht

Befehl in der minimalen Cron-Umgebung testen

$env -i SHELL=/bin/sh PATH=/usr/bin:/bin HOME="$HOME" LOGNAME="$(id -un)" /bin/sh -c 'wp --path=/var/www/vhosts/example.com/httpdocs cron event run --due-now'
harmlos

Cron-Log anzeigen: wann welcher Job lief

#journalctl -u cron --since today --no-pager
harmlos

Cronjob mit Protokollierung der Ausgabe anlegen

$(crontab -l 2>/dev/null; echo "*/15 * * * * /usr/bin/php /var/www/vhosts/example.com/httpdocs/wp-cron.php >> /var/www/vhosts/example.com/logs/wp-cron.log 2>&1") | crontab -
vorsicht

Crontab mit Datum als Datei sichern

$crontab -l > ~/crontab-backup-$(date +%F).txt
harmlos

Crontabs aller Benutzer auf einmal anzeigen

#for u in $(cut -d: -f1 /etc/passwd); do crontab -l -u "$u" 2>/dev/null | grep -vE '^(#|$)' | sed "s/^/$u: /"; done
harmlos

Doppelte Ausführung eines Cronjobs mit flock verhindern

$flock -n /tmp/backup.lock /usr/local/bin/backup.sh
harmlos

Gerade laufende Cronjobs anzeigen

$ps -eo pid,user,etime,cmd --forest | grep -A3 '[C]RON'
harmlos

Herausfinden, welcher Cronjob einen Befehl aufruft

#grep -rn "wp-cron.php" /etc/crontab /etc/cron.d /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly /var/spool/cron/crontabs 2>/dev/null
harmlos

Prüfen, welche Skripte in cron.daily wirklich laufen

$run-parts --test /etc/cron.daily
harmlos

Systemweite Cronjobs in /etc/crontab und /etc/cron.d anzeigen

$grep -vE '^\s*(#|$)' /etc/crontab /etc/cron.d/*
harmlos

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.