user_mobilelogo

Wie erstelle ich tägliche, wochentliche oder monatliche CRON jobs ?

Scripts die stündlich (01), täglich (04:02), wochentlich (04:22 am Sonntag) oder monatlich (04:42 am 1.) laufen müssen, könnten im entsprechende Verzeichnis abgelegt werden, nämlich

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron/monthly

Die Scripts werden in alphabetische Reihenfolge gestartet.

Wie sieht /etc/crontab aus ?

Die Hauptkonfigurationsdatei für cron /etc/crontab enthält folgende Zeilen:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Die ersten vier Zeilen sind Variablen, die zum Konfigurieren der Umgebung verwendet werden, in der die cron-Tasks ausgeführt werden. Der Wert der Variable SHELL teilt dem System mit, welche Shell-Umgebung zu verwenden ist (in diesem Beispiel ist dies die Bash-Shell). Die Variable PATH definiert den zum Ausführen der Befehle verwendeten Pfad. Die Ausgabe der cron-Tasks wird an den Benutzernamen gesendet, der mit Hilfe der Variable MAILTO definiert wurde. Wurde die Variable MAILTO als leere Zeichenfolge (MAILTO="") definiert, wird die E-Mail nicht gesendet. Die Variable HOME kann zum Festlegen des home-Verzeichnisses zum Ausführen von Befehlen oder Skripten verwendet werden.

Wie konfiguriere ich einen cron-Task ?

Jede Zeile der Datei /etc/crontab hat folgendes Format:

minute hour day month dayofweek command

  • minute — jede beliebige ganze Zahl zwischen 0 und 59
  • hour — jede beliebige ganze Zahl zwischen 0 und 23
  • day — jede beliebige ganze Zahl zwischen 1 und 31 (wurde ein Monat angegeben, muss der Tag gültig sein)
  • month — jede beliebige ganze Zahl zwischen 1 und 12 (oder der Kurzname des Monats wie Jan, Feb, usw.)
  • dayofweek — jede beliebige ganze Zahl zwischen 0 und 7 0 oder 7 stehen für Sonntag (oder den Kurznamen der Woche wie So, Mo, usw.)
  • command — der auszuführende Befehl. Der Befehl kann entweder ein Befehl wie zum Beispiel ls /proc >> /tmp/proc oder der Befehl zum Ausführen eines benutzerdefinierten, von Ihnen erstellten Skripts sein.

Für alle oben angegebenen Werte kann ein Sternchen (*) verwendet werden, um alle gültigen Werte anzugeben. Ein Sternchen für den Monatswert bedeutet zum Beispiel, dass der Befehl jeden Monat innerhalb der Einschränkungen der anderen Werte ausgeführt wird.

Ein Bindestrich (-) zwischen ganzen Zahlen gibt einen Bereich von ganzen Zahlen an. 1-4 steht zum Beispiel für die ganzen Zahlen 1, 2, 3 und 4.

Eine Liste von kommagetrennten Werten (,) gibt eine Liste an. 3, 4, 6, 8 gibt zum Beispiel diese vier ganzen Zahlen an.

Der Schrägstrich (/) kann zum Angeben von Schrittwerten verwendet werden. Der Wert einer ganzen Zahl kann in einem Bereich mit Hilfe von /<Ganze Zahl> übersprungen werden. 0-59/2 kann zum Beispiel zum Definieren jeder weiteren Minute im Feld minute (Minute) verwendet werden. Schrittwerte können auch mit einem Sternchen verwendet werden. Der Wert */3 kann zum Beispiel im Feld month (Monat) verwendet werden, um jeden dritten Monat zu überspringen.

Alle Zeile, die mit einem Nummernzeichen (#) beginnen, sind Kommentare. Sie werden nicht verarbeitet.

Wie erstelle ich meine eigene Crontab ?

  • crontab -e

Falls Sie nicht in /etc/crontab.deny eingetragen sind, können Sie mit crontab -e Ihre eigene crontab editieren. Ein Verzeichnis mit Ihre Userid als Name wird in /var/spool/cron angelegt.

 

Real time web analytics, Heat map tracking