Fragen
Wie prüfe ich, was ein Cron-Ausdruck bedeutet?
Fügen Sie ihn in den Cron-Erklärer ein; er gibt den Zeitplan in Klartext und die nächsten zehn Läufe in Ihrer Zeitzone aus.
Feldreihenfolge, die Zeitpläne, die man wirklich braucht, und die drei Fallen, die für die meisten „mein Cron-Job läuft nicht“-Tickets verantwortlich sind.
┌─ Minute (0–59) │ ┌─ Stunde (0–23) │ │ ┌─ Tag im Monat (1–31) │ │ │ ┌─ Monat (1–12, jan–dec) │ │ │ │ ┌─ Wochentag (0–7, sun–sat; 0 und 7 = Sonntag) * * * * * Befehl
| * | jeder Wert |
| 5 | genau 5 |
| 1-5 | Bereich |
| */15 | jeder 15. |
| 1,15 | Liste |
| 8-18/2 | Schritt im Bereich |
| @reboot | einmal beim Start |
| @hourly | 0 * * * * |
| @daily / @midnight | 0 0 * * * |
| @weekly | 0 0 * * 0 |
| @monthly | 0 0 1 * * |
| @yearly / @annually | 0 0 1 1 * |
| * * * * * | jede Minute |
| */5 * * * * | alle 5 Minuten |
| */15 9-17 * * 1-5 | alle 15 Min., Arbeitszeit, werktags |
| 0 * * * * | stündlich, zur vollen Stunde |
| 30 * * * * | stündlich um :30 |
| 0 */6 * * * | alle 6 Stunden (0, 6, 12, 18) |
| 0 0 * * * | täglich um Mitternacht |
| 0 3 * * * | täglich um 03:00 |
| 30 6 * * 1-5 | werktags um 06:30 |
| 0 9,17 * * 1-5 | werktags um 09:00 und 17:00 |
| 0 0 * * 0 | sonntags um Mitternacht |
| 0 0 * * 6,0 | Wochenenden |
| 0 0 1 * * | Monatserster |
| 0 0 1,15 * * | 1. und 15. |
| 0 0 1 */3 * | quartalsweise (1. Jan, Apr, Jul, Okt) |
| 0 0 1 1 * | jährlich |
| 0 0 * * 1#1 | erster Montag (nicht standard; nutzen Sie 0 0 1-7 * 1) |
| 0 0 1-7 * 1 | erster Montag — Vorsicht: feuert an den Tagen 1–7 ODER an jedem Montag; Test [ $(date +\%u) = 1 ] ergänzen |
| 0 0 28-31 * * [ $(date -d tomorrow +\%d) = 01 ] && cmd | letzter Tag des Monats |
| 0 2 * * * sleep $((RANDOM \% 1800)); cmd | 02:00 mit bis zu 30 Min. Streuung |
/usr/bin:/bin). Absolute Pfade nutzen oder PATH=… oben in der crontab setzen.\% (date +\%F).CRON_TZ=Europe/Berlin funktioniert in cronie.MAILTO= setzen.flock -n /tmp/job.lock cmd einhüllen.| crontab -e | eigene crontab bearbeiten |
| crontab -l | auflisten |
| crontab -r | alles entfernen (ohne Rückfrage!) |
| crontab -u www-data -l | die eines anderen Benutzers (root) |
| /etc/crontab, /etc/cron.d/* | System-crontabs: haben ein Benutzerfeld nach dem Zeitplan |
| /etc/cron.{hourly,daily,weekly,monthly}/ | Drop-in-Skripte, auf Desktops von anacron ausgeführt |
| grep CRON /var/log/syslog; journalctl -u cron | sehen, was lief |
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [email protected] SHELL=/bin/bash # m h dom mon dow Befehl 30 6 * * 1-5 flock -n /run/backup.lock /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Die Ergebnisse und Meldungen dieses Tools werden auf Englisch angezeigt.
Fügen Sie ihn in den Cron-Erklärer ein; er gibt den Zeitplan in Klartext und die nächsten zehn Läufe in Ihrer Zeitzone aus.