Provided by: manpages-de_4.21.0-2_all bug

BEZEICHNUNG

       crontab - Tabellen zum Betrieb von Cron

BESCHREIBUNG

       Eine  crontab-Datei  enthält  Anweisungen  für  den Daemon cron(8) in der algemeinen Weise: »führe diesen
       Befehl zu dieser Zeit an diesem Datum aus«. Jeder Benutzer hat seine eigene Crontab.  Befehle  in  diesen
       übergebenen  Crontabs werden unter der Benutzerkennung des Eigentümers der jeweiligen Crontab ausgeführt.
       Uucp und News werden normalerweise ihre eigenen Crontabs haben, wodurch der explizite  Aufruf  von  su(1)
       als Teil des Cron-Befehls vermieden wird.

       Beachten  Sie,  dass Kommentare auf der gleichen Zeile wie Cron-Befehle nicht als Kommentare im Sinne von
       Cron behandelt werden, sondern als Teil des Befehls betrachtet und an die Shell  übergeben  werden.  Dies
       trifft ähnlich für Kommentare auf der gleichen Zeile wie Variableneinstellungen zu.

       Eine  aktive  Zeile  in  einer  Crontab ist entweder eine Umgebungseinstellung oder ein Cron-Befehl. Eine
       Umgebungseinstellung hat die folgende Form:

           Name = Wert

       Dabei ist Leerraum um das Gleichheitszeichen (=) herum optional und alle folgenden und  nicht  am  Anfang
       stehenden  Leerraumzeichen in Wert werden als Teil des Name zugewiesenen Wertes betrachtet. Der Wert kann
       in einfache oder doppelte (aber zueinander passende) englische Anführungszeichen  eingeschlossen  werden,
       um  führenden  oder abschließenden Leerraum zu erhalten. Um eine leere Variable zu definieren, müssen Sie
       Anführungszeichen verwenden.

       Die Zeichenkette Wert wird nicht auf Umgebungsersetzungen  oder  Ersetzungen  von  Variablen  oder  Tilde
       (~)-Expansionen ausgewertet, daher werden Zeilen wie

           PATH = $HOME/bin:$PATH
           PATH = ~/bin:/usr/bin

       nicht wie erwartet funktionieren. Auch das wird nicht funktionieren:

           A=1
           B=2
           C=$A $B

       Für die im letzten Wert definierten Variablen wird keine Ersetzung vorgenommen.

       Eine  Reihe  von  Umgebungsvariablen werden durch den cron(8)-Daemon automatisch eingerichtet. SHELL wird
       auf »/usr/bin/sh« gesetzt und LOGNAME und HOME werden  aus  der  /etc/passwd-Zeile  des  Eigentümers  der
       Crontab gesetzt. HOME und SHELL können durch Einstellungen in der Crontab außer Kraft gesetzt werden; für
       LOGNAME ist dies nicht möglich.

       (Ein  weitere  Hinweis:  die  Variable  LOGNAME  wird  auf BSD-Systemen manchmal USER genannt… auf diesen
       Systemen wird USER auch gesetzt.)

       Zusätzlich zu LOGNAME, HOME und SHELL prüft cron(8) auch die  Variable  MAILTO,  falls  eine  E-Mail  als
       Ergebnis  der  Ausführung  eines  Befehls  in einer bestimmten Crontab gesendet werden muss. Falls MAILTO
       definiert (und nicht leer)  ist,  werden  E-Mails  an  die  angegebene  Adresse  gesendet.  Falls  MAILTO
       definiert,  aber  leer  ist (MAILTO=""), wird keine E-Mail gesendet. Diese Option ist nützlich, falls Sie
       »/usr/bin/mail« anstatt von »/usr/lib/sendmail« als Ihr E-Mail-Versandprogramm verwenden.  Beachten  Sie,
       dass  »/usr/bin/mail«  keine  Aliase  unterstützt  und UUCP normalerweise seine E-Mail nicht liest. Falls
       MAILFROM definiert (und nicht leer) ist, wird es  als  Umschlagsendeadresse  verwandt,  andernfalls  wird
       »root« genutzt.

       The format of a cron command is very much the V7 standard, with a number of upward-compatible extensions.
       Each  line  has five time and date fields, followed by a command, followed by a newline character ('\n').
       The system crontab (/etc/crontab) uses the same format, except that  the  username  for  the  command  is
       specified after the time and date fields and before the command. The fields may be separated by spaces or
       tabs. The maximum permitted length for the command field is 998 characters.

       Befehle  werden  durch  cron(8) ausgeführt, wenn die Felder »Minute«, »Stunde« und »Monat des Jahres« mit
       der aktuellen Zeit übereinstimmen und mindestens eines der zwei »Tag«-Felder (»Tag des Monats« oder  »Tag
       der  Woche«)  mit  der  aktuellen  Zeit  übereinstimmt  (siehe  nachfolgenden  »Hinweis«).  cron(8) prüft
       Cron-Einträge einmal pro Minute. Die Zeit- und Datum-Felder sind folgende:

              Feld           Zulässige Werte
              -----          --------------
              Minute         0-59
              Stunde         0-23
              Tag des Monats 0-31
              Monat          0-12 (oder Namen, siehe unten)
              Wochentag      0-7 (0 oder 7 ist Sonntag, oder Namen verwenden)

       Ein Feld kann einen Stern (*) enthalten, der immer für »erster-letzter« steht.

       Zahlenbereiche sind erlaubt. Bereiche sind zwei durch einen Bindestrich  getrennte  Zahlen.  Der  Bereich
       schließt  die  angegebenen  Zahlen  ein.  Beispielsweise  legt  »8-11«  für  einen  »Stunden«-Eintrag die
       Ausführung zu den Stunden 8, 9, 10 und 11 fest.

       Listen sind erlaubt. Eine Liste ist eine durch Kommata getrennte  Gruppe  von  Zahlen  (oder  Bereichen).
       Beispiele: »1,2,5,9«, »0-4,8-12«.

       Im  Zusammenhang  mit  Bereichen  können  Schrittwerte  verwandt  werden. Wird an einen Bereich »/<Zahl>«
       angehängt, dann legt dies den numerischen Wert für die Schritte durch den  Bereich  fest.  Beispielsweise
       kann »0-23/2« im Stunden-Feld verwandt werden, um die Ausführung zu jeder zweiten Stunde festzulegen (die
       Alternative  im  V7-Standard  ist  »0,2,4,6,8,10,12,14,16,18,20,22«). Schritte sind auch nach einem Stern
       erlaubt, falls Sie also »alle zwei Stunden« festlegen möchten, verwenden Sie einfach »*/2«.

       Für die Felder »Monat« und »Tag der Woche« können auch englische Namen verwandt werden. Verwenden Sie die
       ersten drei (englischen) Buchstaben des bestimmten Tages oder Monats  (Groß-/Kleinschreibung  ist  egal).
       Bereiche oder Listen von Namen sind nicht erlaubt.

       Das  »sechste«  Feld  (der Rest der Zeile) legt den auszuführenden Befehl fest. Der gesamte Befehlsanteil
       der Zeile bis zum Zeilenumbruch oder zum Zeichen »%« wird durch »/usr/bin/sh« oder die durch die Variable
       SHELL in  der  Cron-Datei  festgelegte  Shell  ausgeführt.  Ein  »%«-Zeichen  im  Befehl  wird  in  einen
       Zeilenumbruch  umgewandelt,  außer  es  wird mit einem Rückwärtsschrägstrich (\) geschützt, und sämtliche
       Daten nach dem ersten »%« werden dem Befehl als Standardeingabe übergeben.

       Hinweis: Der Tag der Ausführung des Befehls kann über zwei Felder festgelegt werden — Tag des Monats  und
       Tag  der  Woche.  Falls  beide  Felder  eingeschränkt  sind  (d.h.  nicht mit * beginnen) wird der Befehl
       ausgeführt, wenn eines der beiden Felder auf die aktuelle Zeit passt. Beispielsweise würde
       "30 4 1,15 * 5" dazu führen, dass ein Befehl um 16:30 Uhr am 1. und  am  15.  jedes  Monats  sowie  jeden
       Freitag  ausgeführt  wird. Sie können jedoch das gewünschte Ergebnis auch erreichen, indem Sie einen Test
       zum Befehl hinzufügen (siehe das letzte Beispiel in BEISPIEL FÜR EINE CRON-DATEI nachfolgend).

       Anstelle der ersten fünf Felder kann eine der folgenden acht speziellen Zeichenketten erscheinen:

              Zeichenkette   Bedeutung
              ------         -------
              @reboot        Einmal beim Systemstart ausführen.
              @yearly        Einmal im Jahr ausführen, "0 0 1 1 *".
              @annually      (gleichbedeutend mit @yearly)
              @monthly       Einmal im Monat ausführen, "0 0 1 * *".
              @weekly        Einmal in der Woche ausführen, "0 0 * * 0".
              @daily         Einmal täglich ausführen, "0 0 * * *".
              @midnight      (gleichbedeutend mit @daily)
              @hourly        Einmal pro Stunde ausführen, "0 * * * *".

       Beachten  Sie,  dass  der  Startzeitpunkt,  soweit  es  @reboot  betrifft,  die  Zeit  ist,  zu  der  der
       cron(8)-Daemon  gestartet  wurde.  Insbesondere  könnte  dies  früher  sein,  als  der  Start von einigen
       System-Daemons oder anderen Einrichtungen. Dies erfolgt aufgrund  der  Systemstartreihenfolgesequenz  der
       Maschine.

BEISPIEL FÜR EINE CRON-DATEI

       # use /usr/bin/sh to run commands, no matter what /etc/passwd says
       SHELL=/usr/bin/sh
       # mail any output to `paul', no matter whose crontab this is
       MAILTO=paul
       #
       # run five minutes after midnight, every day
       5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
       # run at 2:15pm on the first of every month -- output mailed to paul
       15 14 1 * *     $HOME/bin/monthly
       # run at 10 pm on weekdays, annoy Joe
       0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
       23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
       5 4 * * sun     echo "run at 5 after 4 every Sunday"
       0 */4 1 * mon   echo "run every 4th hour on the 1st and on every Monday"
       0 0 */2 * sun   echo "run at midn on every Sunday that's an uneven date"
       # Run on every second Saturday of the month
       0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "2nd Saturday"
       # Same thing, efficient too:
       0 4 * * * Sat   d=$(date +e) && test $d -ge 8 -a $d -le 14 && echo "2nd Saturday"
       #Execute early the next morning following the first
       #Thursday of each month
       57 2 * * 5 case $(date +d) in 0[2-8]) echo "After 1st Thursday"; esac

       Alle  der  vorstehenden  Beispiele  führen  nicht-interaktive  Programme  aus.  Sollten  Sie ein Programm
       ausführen wollen, das mit der Arbeitsumgebung des Benutzers interagiert, dann müssen  Sie  sicherstellen,
       dass die Umgebungsvariable DISPLAY korrekt gesetzt ist.

       # Jeden Tag um 10:00 Uhr ein Programm und eine Benachrichtigung ausführe
       0 10 * * *  $HOME/bin/program | DISPLAY=:0 notify-send "Programm ausgeführt" "$(cat)"

BEISPIEL FÜR EINE SYSTEM-CRON-DATEI

       Nachfolgendes  führt  den Inhalt einer regulären, systemweiten Crontab-Datei auf. Anders als bei Crontabs
       von Benutzern enthält diese Datei das Benutzernamenfeld, wie es von /etc/crontab verwandt wird.

       # /etc/crontab: systemweite Crontab
       # Anders als bei anderen Crontabs müssen Sie nicht den Befehl
       # »crontab« ausführen, um die neue Version nach der Beabeitung
       # dieser Datei und Dateien in /etc/cron.d zu installieren. Diese
       # Dateien enthalten auch Benutzernamenfelder, was keine anderen
       # Crontabs machen

       SHELL=/bin/sh
       PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

       # Beispiel einer Auftragsdefinition:
       # .---------------- Minute (0 - 59)
       # |  .------------- Stunde (0 - 23)
       # |  |  .---------- Tag des Monats (1 - 31)
       # |  |  |  .------- Monat (1 - 12) ODER jan,feb,mar,apr …
       # |  |  |  |  .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER sun,mon,tue,wed,thu,fri,sat
       # |  |  |  |  |
       # m h tdm mon tdw BenBefehl
       17 * * * *  root  cd / && run-parts --report /etc/cron.hourly
       25 6 * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
       47 6 * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
       52 6 1 * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
       #

       Beachten Sie, dass alle systemweiten Aufträge standardmäßig von  6  bis  7  Uhr  ausgeführt  werden.  Bei
       Systemen,  die  während  dieser  Zeitdauer  nicht eingeschaltet sind, werden nur die stündlichen Aufgaben
       ausgeführt, außer die obigen Vorgaben wurden geändert.

SIEHE AUCH

       cron(8), crontab(1)

ERWEITERUNGEN

       Bei der Angabe des Tages der Woche werden sowohl Tag 0 als auch Tag 7 als  Sonntag  betrachtet.  BSD  und
       AT&T scheinen sich darüber uneinig zu sein.

       Listen  und  Bereiche können im gleichen Feld simultan existieren. »1-3,7-9« würde von AT&T- und BSD-Cron
       abgelehnt – sie würden NUR »1-3« oder »7,8,9« sehen wollen.

       Bereiche können »Schritte« enthalten, daher ist »1-9/2« identisch zu »1,3,5,7,9«.

       Monate oder Tage der Woche können durch ihren englischen Namen angegeben werden.

       In der Crontab können Umgebungsvariablen gesetzt  werden.  In  BSD  und  AT&T  ist  die  an  Kindprozesse
       übergebene Umgebung im Prinzip die von /etc/rc.

       Die  Ausgabe  von  Befehlen  wird an den Eigentümer der Crontab per E-Mail gesandt (BSD kann dies nicht),
       kann an eine vom Eigentümer verschiedene Person per E-Mail gesandt werden (SysV  kann  dies  nicht)  oder
       diese Funktionalität kann ausgeschaltet werden und es wird überhaupt keine E-Mail gesandt (SysV kann dies
       auch nicht).

       Alle »@«-Befehle, die anstelle der ersten fünf Felder erscheinen können, sind Erweiterungen.

EINSCHRÄNKUNGEN

       Der  Daemon  cron  läuft  innerhalb  einer  definierten  Zeitzone. Derzeit werden keine benutzerbezogenen
       Zeitzonen unterstützt. Sämtlich Aufgaben, die des Systems und der  Benutzer,  werden  basierend  auf  der
       konfigurierten  Zeitzone  ausgeführt. Selbst wenn ein Benutzer die Umgebungsvariable TZ in seiner crontab
       festlegt, wird dies nur die in seiner Crontab ausgeführten Befehle betreffen, nicht  die  Ausführung  der
       Crontab-Aufgaben  selbst.  Falls  eine  bestimmte  Zeitzone für Crontab-Aufgaben selbst festgelegt werden
       soll, muss händisch das Datum in dem Kindskript überprüft werden, beispielsweise:

           # m h  tdm mon tdw   Befehl

           TZ=UTC
           0 * * * * [ "$(date +\%R)" = 00:00 ] && ein_Skript_ausführen

       POSIX spezifiziert, dass die Felder »Tag des Monats« und »Tag der Woche«  beide  auf  die  aktuelle  Zeit
       passen müssen, wenn einer von ihnen ein * ist. Diese Implementierung prüft aber nur, ob das erste Zeichen
       ein  *  ist.  Daher  wird  »0 0 */2 * sun« jeden Sonntag ausgeführt, der auf einem ungeraden Datum liegt,
       während der POSIX-Standard verlangen  würde,  dass  er  jeden  Sonntag  und  auf  jedem  ungeradem  Datum
       ausgeführt wird.

       The crontab syntax does not make it possible to define all possible periods one can imagine. For example,
       it is not straightforward to define the last weekday of a month. To have a task run in a time period that
       cannot  be  defined using crontab syntax, the best approach would be to have the program itself check the
       date and time information and continue execution only if the period matches the desired one.

       Falls das Programm die Prüfungen nicht selbst ausführen kann, dann ist ein  Wrapper-Skript  erforderlich.
       Hilfreiche  Werkzeuge,  die für die Datumsanalyse verwendet werden können, sind ncal(1) oder calendar(1).
       Um beispielsweise am letzten Samstag  jedes  Monats  ein  Programm  auszuführen,  könnten  Sie  folgenden
       Wrapper-Code verwenden:

       0 4 * * Sat   [ "$(date +\%e)" = "$(LANG=de ncal | sed -n 's/^Sa .* \([0-9]\+\) *$/\1/p')" ] && echo "Letzter Samstag" && auszuführendes_Programm

DIAGNOSE

       Cron  verlangt,  dass  jeder  Eintrag  in  einer  Crontab mit einem Zeilenumbruchzeichen endet. Falls dem
       letzten Eintrag ein Zeilenumbruch fehlt (d.h. sie mit  EOF  beendet  ist),  wird  Cron  die  Crontab  als
       (zumindestens teilweise) defekt betrachten. Es wird eine Warnung ins Systemprotokoll geschrieben.

AUTOR

       Paul  Vixie  <paul@vix.com>  ist der Autor von cron und der ursprüngliche Verfasser dieser Handbuchseite.
       Diese Handbuchseite wurde für Debian von Steve Greenland, Javier Fernandez-Sanguino,  Christian  Kastner,
       Christian Pekeler und Georges Khaznadar angepasst.

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com>
       und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer.

4th Berkeley Distribution                        19. April 2010                                       CRONTAB(5)