Mit Cron lassen sich unter Linux immer wiederkehrende Aufgaben automatisieren – also zu einem bestimmten Zeitpunkt automatisch ausführen. Dies können Befehle sein, oder auch selbst erstellte Scripte, die automatisch starten sollen.

Nun, in diesem Beitrag der Linux Bibel sehen wir uns diese Software etwas näher an. Cron ist unter den meisten Linux-Distributionen automatisch vorinstalliert. Unter Void Linux installieren Sie den Dienst etwa durch das Paketcronie„.

Im ersten Teil werden wir uns mit Cron als normaler Benutzer beschäftigen.

Automatisch zu startende Aufgaben konfigurieren

Wollen wir beispielsweise das Scriptbackup.sh“ jeden Samstag um 22:45 ausführen lassen, es liegt im Verzeichnis/home/robert/scripts„.

Um Aufgaben mit normalen Benutzerrechten auszuführen, ist die Crontab zuständig – diese erstellt und bearbeitet man am Terminal mit dem Befehl:

crontab -e

Unter den meisten Linux-Distributionen wird beim ersten Modifizieren der Crontab abgefragt, welchen Editor Sie nutzen möchten – der einfachste ist Nano, etwas schwieriger ist Vim zu nutzen.

Nun, in der Crontab legen wir in jeder neuen Zeile eine neue Aufgabe fest – die Syntax dazu sieht so aus:

datum / uhrzeit Befehl

Die Syntax ist recht einfach, die echte Zeile sieht zu Beginn etwas kryptisch aus:

45 22 * * 7 /home/robert/scripts/backup.sh

In der Crontab also:

Für eine weitere Aufgabe erstellt man sich eine weiter Zeile. Jetzt wollen wir uns diese kryptische Zeitangabe aber etwas näher ansehen „45 22 * * 7„. Es sieht nur kryptisch aus – ist aber ganz einfach zu verstehen.

*     *     *     *     *  auszuführender Befehl
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Wochentag - an diesem Tag der Woche soll der Befehl ausgeführt werden (0 - 7, Sonntag = 0, Montag = 1)
|     |     |     +------- Monat - in diesem Monat des Jahres soll der Befehl ausgeführt werden (1 - 12)
|     |     +--------- Tag - an diesem Tag im Monat soll der Befehl ausgeführt werden (1 - 31)
|     +----------- Stunde - in dieser Stunde des Tages soll der Befehl ausgeführt werden (0 - 23)
+------------- Minute - in dieser Minute der Stunde soll der Befehl ausgeführt werden (0 - 59)

Statt der Sternchen gibt man also die Uhrzeit, den Tag, den Monat und den Wochentag an. Zwischen den einzelnen Angaben lässt man ein Leerzeichen. Gibt man statt einer Angabe nicht ein – ersetzt die Angabe ein Sternchen. Und ein Sternchen bedeutet wiederum – immer.

Lasse ich jetzt beispielsweise die Angabe der Stunde, des Tages und des Monats weg – etwa:

10 * * * 0 /home/robert/scripts/backup.sh

Wird das Script in der zehnten Minute jeder Stunde, jedes Monats und jeden Sonntag ausgeführt:

10m 0-23uhr 1-31tag 1-12monat 0sonntag

Oder ich möchte das Script täglich um 10:15 ausführen:

15 10 * * * /home/robert/scripts/backup.sh

Anschließend wird die Datei gespeichert und Cron verrichtet ab sofort seine Aufgabe(n).

Arbeitet man mit der Desktop-Umgebung KDE Plasma, hat man es etwas einfacher – mit Kcron hat man auch eine grafische Oberfläche in den Systemeinstellungen. Diese findet sich unter „Starten und Beenden → Aufgabenplaner„:

Hier zeigt sich auch die gerade am Terminal erstellte Aufgabe – um eine Aufgabe grafisch zu erstellen, klicken Sie rechts oben auf die Schaltfläche „Neuer Auftrag„:

Ganz oben geben Sie den Befehl ein oder wählen das Script – unten markieren Sie die Zeiten, zu denen Cron die jeweilige Aufgabe ausführen soll:

Systemweite Cron-Jobs, am ehesten für administrative Aufgaben gedacht:

Nehmen wir wieder das Beispiel des Backup-Scripts – in diesem Fall soll es halt nicht einfach nur die Dateien des einzelnen Benutzers sichern, sondern alle Home-Verzeichnisse, oder auch das komplette System. In diesem Fall müsste das Script natürlich mit administrativen Rechten laufen.

Um dies zum Laufen zu bringen, gilt es, die Crontab natürlich als root zu starten – die Crontab liegt dann unter „/etc/crontab„.

crontab -e

Dasselbe Beispiel – gleicht sieht man einen weiteren Eintrag mehr:

45 22 * * 7 root /home/robert/scripts/backup.sh

Der einzige Unterschied ist – es wird der Benutzer genannt, mit dessen Rechten der Befehl ausgeführt wird. Ich könnte jetzt beispielsweise auch als Administrator ein Script mit den Rechten des jeweiligen Benutzers ausführen:

45 22 * * 7 root /home/robert/scripts/backup.sh
45 22 * * 7 robert /home/robert/scripts/backup-robert.sh

Eine weitere Möglichkeit, Aufgaben mit Cron automatisch auszuführen, sind Scripte unter:

  • /etc/cron.daily – darin liegende Scripte werden täglich ausgeführt
  • /etc/cron.hourly – diese Scripte werden einmal stündlich gestartet
    • /etc/cron.monhtly
    – diese Scripte werden einmal im Monat gestartet

Diese Scripte sind so einfach aufgebaut wie normale Scripte unter Linux – also etwa:

#!/bin/sh
...
...
...
done
exit

Natürlich nicht vergessen – alle Scripte ausführbar machen.

Gefällt mir 1
Gefällt mir nicht 1

Categories:

Tags:

Schreibe einen Kommentar

4 Reaktionen

Neue Themen im Forum
Archivierungsprogramm für Datentr …Zitat von zebolon am 15. Mai 2025, 18:33 Uhr Zu Recoll gibt es im … Weiterlesen
Statistik April 2025Die Entwicklung im WIKI im April 2025 Insgesamt sind 19 neue Be … Weiterlesen
Schleswig Holstein verläßt das Mi …Zitat von monte25 am 18. April 2025, 22:06 Uhr Nicht alles ist au … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2023
M D M D F S S
 123
45678910
11121314151617
18192021222324
252627282930  
Archive