Linux cron – Kurz und bündig (in a Nutshell)
Linux cron einfach erklärt: crontab-Syntax verstehen, mit crontab -e bearbeiten und mit fertigen Beispielen Backups, Watchdogs und Logs automatisieren.
Cron wird zum Aufrufen von wiederkehrenden Jobs uner Linux genutzt. Wer mag, kann sich danach auch sqlite3 in a Nutshell im selben kompakten Stil ansehen.
Dazu werden in der crontab Tabelle Einträge gemacht die folgendermaßen aussehen:
* * * * * auszuführender Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)
Dabei kann man an jeder Stelle eines der folgenden Zeichen(folgen) verwenden:
* = Ausführung immer (zu jeder…)
*/n = Ausführung aller n
x,y,z = Ausführung um/am x, y und z
So bedeutet ein */10 an der Minuten-Stelle (an der ersten Stelle): „Alle 10 Minuten“
Bearbeiten
Um die crontab (für den gerade aktiven Benutzer ) zu bearbeiten benötigt man den Befehl:
crontab -e
Wenn du dabei viel im Terminal arbeitest, hilft es, vorher die Bash-Kommandozeile anzupassen.
Beispiele
Oft verwendete Einträge habe ich nun hier aufgelistet:
Jede Nacht um 3:34 Uhr morgens das Backup machen:
34 3 * * * /usr/bin/backup.sh
Alle 10 Minuten einen Prozess überwachen:
*/10 * * * * /usr/bin/watchdog.sh
So lässt sich übrigens auch ein abendlicher Neustart automatisieren.
Jede zweite Stunde um 5 nach
5 */2 * * * /usr/bin/watchdog.sh
Täglich um 8:00 und um 17:00 Uhr einen Preis checken:
0 8,17 * * * /usr/bin/check_price.sh
Einmal im Jahr genau am 31.12. um 23:55 Uhr, eine Mail versenden:
55 23 31 12 * /usr/bin/frohes_neues_jahr_mail.sh
Statt einer Mail kannst du an dieser Stelle auch Telegram-Nachrichten per Kommandozeile verschicken.
Ausgabe managen
Ausgabe in Logfile umleiten
*/10 * * * * /usr/bin/script.sh >>/var/log/cron/script.log 2>&1
Ausgabe verwerfen
`*/10 * * * * /usr/bin/script.sh` >/dev/null 2>&1
Ausgabe täglich in eine eigene Datei umleiten:
*/10 * * * * /usr/bin/script.sh >>/var/log/cron/script_$(date +\%Y\%m\%d).log
Mehr aus „Linux, DevOps & Systeme"
Docker Speicherplatz freigeben
Docker Speicherplatz freigeben: mit docker system df die Belegung sehen und mit prune ungenutzte Images, Container, Volumes, Netzwerke und Build-Cache löschen.
WeiterlesenWindows Core Prozesse verstehen
Windows Core-Prozesse verstehen: was smss.exe, csrss.exe, lsass.exe und svchost.exe wirklich tun und woran Du getarnte Malware im Prozessbaum erkennst.
WeiterlesenUbuntu LTS Release Update
Ubuntu LTS sicher aktualisieren: Snapshot bei Contabo oder Netcup anlegen, mit apt update und do-release-upgrade hochziehen und den SSH-Port bestätigen.
WeiterlesenÜber diesen Blog
Ein Sammelsurium an Denkanstößen.
Hier sammle ich Wissen, Argumente und Links zu allem, was mich beschäftigt — von Technik über Küche bis Nachhaltigkeit. Beruflich berate ich zu Cybersecurity.