Linux Bibel online ~ Cron

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Linux lässt Sie tun und lassen was Sie wollen, dies zeichnet sich auch bei der Automatisierung des Systems ab. Nehmen wir einmal an Sie haben ein Script erstellt das ein Backup anlegen soll und Sie wollen dieses Script automatisch zu gewissen Zeiten ausführen lassen. In diesem Script steht schon alles bereit, welche Daten wohin gesichert werden sollen - Sie benötigen nur noch etwas das dieses Script zur gewünschten Zeit ausführt. Zu diesem und ähnlichen Zwecken stehen unter Linux zwei schon installierte Tools bereit die dies übernehmen können, Cron das Aufgaben zu genau fest gelegten Zeiten startet und Anacron das eigentlich auf die selbe Art arbeitet - aber wenn der Rechner etwa einmal zu dieser Zeit nicht eingeschaltet ist holt er dies zur nächst besten Zeit nach - genau dies tut Cron nicht. Nun wollen wir uns beide Anwendungen etwas genauer ansehen.

Cron

Wie schon beschrieben dient Cron dazu Aufgaben zu fest gelegten Zeiten auszuführen, ist der Rechner zu dieser Zeit etwa nicht eingeschaltet wird die Aufgabe auch nicht nachgeholt sondern erst beim nächsten fest gelegten Zeitpunkt. Bestenfalls nutzt man Cron also auf einem Rechner der standardmäßig immer an ist, wie etwa einem Server. Cron gibt es für den einfachen Nutzer - damit lassen sich Aufgaben rund um sein eigenes Home-Verzeichnis automatisieren wie auch für den Administrator "root" - hiermit lässt sich alles rund um das komplette System regeln. In den folgenden beiden Beispielen werde ich dies einmal für den einfachen User sowie einmal für "root" beschreiben.

Beispiel für den einfachen User Wie oben schon beschrieben habe ich mir ein Backup-Script erstellt das sich netterweise "backup.sh" nennt, dieses soll einmal wöchentlich am Dienstag um 22:30 starten und seine Aufgabe erledigen. Das was dazu nötig ist ist nun eine Datei in der man die Aufgaben und deren Zeiten fest legen kann und diese nennt sich "crontab", diese erstellt man auf dem Terminal ganz einfach mit dem Befehl:

crontab -e

Nutzt man Cron das erste Mal wird dabei von Ihnen ein entsprechender Editor fest gelegt, drücken Sie einfach die entsprechende Zahl:

Linux Automatisieren - Auswahl eines Editors für Cron

Auswahl eines Editors für Cron

Für Einsteiger auf dem Linux-Terminal schlage ich hier Nano vor, drücken Sie also die "1" und bestätigen mit der Eingabe-Taste und schon öffnet sich Nano mit der Crontab:

Linux mit Cron automatisieren - geöffnete Crontab

Geöffnete Crontab in Nano

Nun gilt es sich ein klein wenig Wissen anzueignen, Cron will von Ihnen wissen was es wann tun soll - dies ist also nicht sehr viel, die Syntax ist jedoch zu Beginn etwas unfreundlich. Die Syntax sieht folgend aus:

Minute Stunde Tag Monat Wochentag Aufgabe

In meinem Beispiel würde dies also so aussehen:

30 22 * * 2 sh /home/robert/backup.sh

Linux mit Cron automatisieren - erstellte Aufgabe

Erstellte Crontab mit einer Aufgabe

Nur keine Verwirrung, dies ist ganz einfach zu verstehen. Ganz einfach habe ich die Uhrzeit fest gelegt, also um 22:30, dies ist noch leicht verständlich. Die "2" am Wochentag bedeutet natürlich am zweiten Tag der Woche, also am Dienstag. Das Sternchen "*" bedeutet nichts anderes als das die Aufgabe jeden Tag im Monat, welches Monat im Jahr starten soll nur ein Dienstag soll es sein. Dahinter steht die Aufgabe die mein Backup-Script durch:

sh backup.sh

startet. Also ganz einfach jeden Dienstag um 22:30. Würde ich die Zeile so auslegen:

30 * * * * sh /home/robert/backup.sh

Würde Cron das Script stündlich (also 00:30, 01:30, 02:30, ...) jeden Tag im Jahr, jeden Monat und jeden Tag in der Woche starten. Für die Angaben sind folgende Werte möglich: Minuten - 0-59, Stunden - 0-23, Tag im Monat - 1-31, Monat - 1-12 und Wochentag - 1-7. Für jede Aufgabe legt man eine neue Zeile mit der entsprechenden Zeit und Aufgabe an, Man speichert die Datei und schon erledigt Cron seine Aufgabe.

Nun eine Crontab für den Nutzer "root" In diesem Fall wollen wir dasselbe nur für den Nutzer "root" erledigen, damit lässt sich etwa ein Backup des kompletten Systems anlegen. Es ist genau dasselbe wie beim einfachen Nutzer nur das er seine Crontab einfach mit Administrator-Rechten anlegen muss, wieder:

crontab -e

Und er fügt seine Zeilen für die einzelnen Aufgaben ein, etwa:

0 0 * * * sh /root/backup.sh

Was in diesem Fall wieder nichts anderes bedeutet als das das Script jeden Tag im Monat, jeden Monat im Jahr an jedem Wochentag um Null Uhr und Null Minuten starten soll.

Will man seine Crontab zur weiteren Bearbeitung öffnen nutzt man ganz einfach wieder:

crontab -e

Jetzt der freundliche Teil - ja es gibt auch grafische Oberflächen für Cron in denen man ganz einfach mit der Maus arbeitet, so etwa kcron für KDE (Systemeinstellungen / Starten und beenden / Aufgaben) und gnome-schedule für alle anderen grafischen Desktop-Umgebungen:

Kcron als grafische Oberfläche für Cron unter KDE

Kcron als grafische Oberfläche für Cron unter KDE in den Systemeinstellungen

Anacron

Cron erfüllt seine Aufgaben wie schon beschrieben zu fest gelegten Zeiten, läuft der Rechner zu dieser Zeit nicht hat man Pech gehabt. Hier springt Anacron in die Bresche, diese Software startet zwar ebenfalls zu fest gelegten Zeiten - aber man legt eine Zeit fest die ab dem Start des Systems gezählt wird, sowie ein Intervall in dem die Aufgabe sowieso erledigt werden soll. Als kleines Beispiel nutze ich wieder mein Backup-Script, das Script soll auf jeden Fall alle sieben Tage starten oder dreißig Minuten nach einem Neustart - mehr lässt sich bei Anacron nicht fest legen. Auch hier benötigen wir wieder eine Datei in der Wir die Aufgaben sowie die Zeit für diese angeben - der Standort dieser Datei "/etc/anacrontab" zeigt uns das Anacron nur vom Administrator des Systems genutzt werden kann. Er öffnet die Datei in einem beliebigen Texteditor und fügt für jede Aufgabe wieder eine neue Zeile ein, in meinem Beispiel also:

7 30 Backup-System sh /root/backup.sh

Die Syntax ist um einiges einfacher als bei Cron, zu Beginn gibt man das Intervall in Tagen an - hier alle "7", dann die Verzögerung nach dem Start des Systems - hier "30" Minuten nach dem Start des Systems, dann folgt eine Beschreibung der Aufgabe - hier "Backup-System" und zuletzt natürlich der entsprechende Befehl. Die Zeit-Angabe nach dem Start wird natürlich nur wirksam und genutzt wenn Anacron im fest gelegten Zeitraum die Aufgabe nicht erledigen konnte.

Mehr Tipps rund um das Terminal finden Sie im Linux Bibel Terminal-Wiki

Suche Nach oben Startseite Mail an den Autor Links rund um Linux









SiteLock