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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.