Update to r44761:

Editorial review of cron section.

Update to r44702:
Clarify how to review boot messages
This commit is contained in:
Bjoern Heidotting 2016-07-27 20:49:03 +00:00
parent 2d35a56eb5
commit f4f4c61e90
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49182

View file

@ -5,7 +5,7 @@
$FreeBSD$ $FreeBSD$
$FreeBSDde: de-docproj/books/handbook/config/chapter.xml,v 1.151 2011/12/19 14:55:31 bcr Exp $ $FreeBSDde: de-docproj/books/handbook/config/chapter.xml,v 1.151 2011/12/19 14:55:31 bcr Exp $
basiert auf: r44561 basiert auf: r44761
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" <chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -252,46 +252,28 @@ run_rc_command "$1"</programlisting>
<filename>/etc/crontab</filename> und <filename>/etc/crontab</filename> und
<filename>/var/cron/tabs</filename>. In diesen Dateien wird <filename>/var/cron/tabs</filename>. In diesen Dateien wird
festgelegt, welche Programme zu welchem Zeitpunkt von festgelegt, welche Programme zu welchem Zeitpunkt von
<application>cron</application> ausgeführt werden sollen.</para> <application>cron</application> ausgeführt werden sollen.
Jede Zeile in diesen Dateien definiert eine auszuführende
Aufgabe, die auch als <firstterm>Cronjob</firstterm> bezeichnet
wird.</para>
<para>Das Werkzeug verwendet zwei verschiedene <para>Das Werkzeug verwendet zwei verschiedene
Konfigurationsdateien: die Konfigurationsdateien: die System-crontab, welche nicht
System-<filename>crontab</filename> und die verändert werden sollte und die Benutzer-crontabs, die nach
Benutzer-<filename>crontab</filename>s. Der einzige Unterschied Bedarf erstellt und geändert werden können. Das Format, dass
zwischen beiden Formaten ist das sechste Feld. In der von diesen beiden Dateien verwendet wird, ist in &man.crontab.5;
System-<filename>crontab</filename> gibt das dokumentiert. Das Format der System-crontab in
sechste Feld den Benutzer an, mit dem <filename>/etc/crontab</filename> enthält das Feld
<application>cron</application> das Kommando ausführen wird. In <literal>who</literal>, das in der Benutzer-crontab nicht
einer Benutzer-<filename>crontab</filename> werden alle existiert. Dieses Feld gibt den Benutzer an, mit dem die
Kommandos unter dem Benutzer ausgeführt, welcher die Aufgabe ausgeführt wird. Die Aufgaben in den Benutzer-crontabs
<filename>crontab</filename> erstellt hat. Hier ist das sechste laufen unter dem Benutzer, der die crontab erstellt hat.</para>
Feld das letzte Feld. Dies ist ein wichtiges
Sicherheitsmerkmal. Das letzte Feld bezeichnet immer das
Kommando, das ausgeführt werden soll.</para>
<note> <para>Benutzer-crontabs erlauben es den Benutzern, ihre eigenen
<para>Benutzer können mit Benutzer-<filename>crontabs</filename> Aufgaben zu planen. Der Benutzer <systemitem
ohne <systemitem class="username">root</systemitem>-Rechte class="username">root</systemitem> kann auch seine eigene
Befehle terminieren. Die Kommandos in Benutzer-crontab haben, um Aufgaben zu planen, die nicht in der
Benutzer-<filename>crontabs</filename> laufen unter dem System-crontab existieren.</para>
Benutzer, der die <filename>crontab</filename> erstellt
hat.</para>
<para>Der Benutzer
<systemitem class="username">root</systemitem> kann, wie jeder
andere Benutzer, eine Benutzer-<filename>crontab</filename>
besitzen. Die Benutzer-<filename>crontab</filename> von
<systemitem class="username">root</systemitem> ist nicht mit
<filename>/etc/crontab</filename>, der
System-<filename>crontab</filename>, zu verwechseln. Da die
System-<filename>crontab</filename> die angegebenen Kommandos
effektiv als
<systemitem class="username">root</systemitem>-Benutzer
aufruft, besteht normalerweise keine Notwendigkeit eine eigene
Benutzer-<filename>crontab</filename> für
<systemitem class="username">root</systemitem> zu
erstellen.</para>
</note>
<para>Hier ist ein Beispieleintrag aus der <para>Hier ist ein Beispieleintrag aus der
System-crontab, <filename>/etc/crontab</filename>:</para> System-crontab, <filename>/etc/crontab</filename>:</para>
@ -300,7 +282,6 @@ run_rc_command "$1"</programlisting>
# #
#$FreeBSD$ #$FreeBSD$
# <co xml:id="co-comments"/> # <co xml:id="co-comments"/>
#
SHELL=/bin/sh SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/> PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/>
# #
@ -311,8 +292,8 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/>
<calloutlist> <calloutlist>
<callout arearefs="co-comments"> <callout arearefs="co-comments">
<para>Das Zeichen <literal>#</literal> am Zeilenanfang leitet, <para>Das Zeichen <literal>#</literal> am Zeilenanfang leitet
wie in den meisten Konfigurationsdateien, einen Kommentar einen Kommentar
ein. Benutzen Sie Kommentare, um die Funktion eines ein. Benutzen Sie Kommentare, um die Funktion eines
Eintrags zu erläutern. Kommentare müssen in einer extra Eintrags zu erläutern. Kommentare müssen in einer extra
Zeile stehen. Sie können nicht in derselben Zeile wie ein Zeile stehen. Sie können nicht in derselben Zeile wie ein
@ -333,41 +314,35 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/>
</callout> </callout>
<callout arearefs="co-field-descr"> <callout arearefs="co-field-descr">
<para>In dieser Zeile werden sieben Felder beschrieben: <para>In dieser Zeile werden sieben Felder der System-crontab
<literal>minute</literal>, <literal>hour</literal>, beschrieben: <literal>minute</literal>,
<literal>mday</literal>, <literal>month</literal>, <literal>hour</literal>, <literal>mday</literal>,
<literal>wday</literal>, <literal>who</literal> <literal>month</literal>, <literal>wday</literal>,
und <literal>command</literal>. Die ersten Felder <literal>who</literal> und <literal>command</literal>. Das
legen den Zeitpunkt fest, an dem ein Kommando laufen Feld <literal>minute</literal> legt die Minute fest in der
soll. Das Feld <literal>minute</literal> legt die die Aufgabe ausgeführt wird, das Feld
Minute fest, das Feld <literal>hour</literal> die <literal>hour</literal> die Stunde, das Feld
Stunde, das Feld <literal>mday</literal> den Tag <literal>mday</literal> den Tag des Monats. Im Feld
des Monats. Im Feld <literal>month</literal> <literal>month</literal> wird der Monat und im Feld
wird der Monat und im Feld <literal>wday</literal> <literal>wday</literal> der Wochentag festgelegt. Alle
der Wochentag festgelegt. Alle Felder müssen Felder müssen numerische Werte enthalten und die Zeitangaben
numerische Werte enthalten und die Zeitangaben sind sind im 24-Stunden-Format. Das Zeichen <literal>*</literal>
im 24-Stunden-Format. Das Zeichen <literal>*</literal>
repräsentiert dabei alle möglichen Werte für dieses Feld. repräsentiert dabei alle möglichen Werte für dieses Feld.
Das Feld <literal>who</literal> Das Feld <literal>who</literal> gibt es nur in der
gibt es nur in der Datei <filename>/etc/crontab</filename> System-crontab und gibt den Account an, unter dem das
und gibt den Account an, unter dem das Kommando laufen Kommando laufen soll. Im letzten Feld wird schließlich das
soll. Im letzten Feld wird schließlich das auszuführende auszuführende Kommando angegeben.</para>
Kommando angegeben.</para>
</callout> </callout>
<callout arearefs="co-main"> <callout arearefs="co-main">
<para>Diese Zeile definiert die Zeitpunkte an denen <para>Diese Zeile definiert die Werte für den Cronjob. Die
<command>atrun</command> laufen soll. Dieses Beispiel Zeichenfolge <literal>*/5</literal> gefolgt von mehreren
verwendet die Zeichenfolge <literal>*/5</literal> gefolgt <literal>*</literal>-Zeichen bedeutet, dass
von mehreren <literal>*</literal>-Zeichen. Das Zeichen <command>/usr/libexec/atrun</command> von <systemitem
<literal>*</literal> ist ein Platzhalter und steht class="username">root</systemitem> alle fünf Minuten
für <emphasis>jede</emphasis> mögliche Zeit. aufgerufen wird.</para>
Diese Zeile führt <command>/usr/libexec/atrun</command>
unter dem <systemitem
class="username">root</systemitem>-Account alle
fünf Minuten aus.</para>
<para>Bei den Kommandos können beliebige Optionen <para>Bei den Kommandos können beliebig viele Optionen
angegeben werden. Wenn das Kommando zu lang ist und angegeben werden. Wenn das Kommando zu lang ist und
auf der nächsten Zeile fortgesetzt werden soll, auf der nächsten Zeile fortgesetzt werden soll,
muss am Ende der Zeile das Fortsetzungszeichen muss am Ende der Zeile das Fortsetzungszeichen
@ -375,51 +350,72 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/>
</callout> </callout>
</calloutlist> </calloutlist>
<para>Bis auf das sechste Feld, das den Account angibt, sieht
jede &man.crontab.5; so wie das Beispiel aus. Das sechste Feld
existiert nur in der System-<filename>crontab</filename>. In
den restlichen &man.crontab.5;-Dateien fehlt dieses Feld.</para>
<sect2 xml:id="configtuning-installcrontab"> <sect2 xml:id="configtuning-installcrontab">
<title><filename>crontab</filename> installieren</title> <title>Eine Benutzer-crontab erstellen</title>
<important> <para>Rufen Sie <command>crontab</command> im Editor-Modus auf,
<para>Die nachstehende Prozedur gilt nur für um eine Benutzer-crontab zu erstellen:</para>
Benutzer-<filename>crontabs</filename>. Die
System-<filename>crontab</filename> kann mit einem
Editor bearbeitet werden. <command>cron</command> bemerkt,
dass sich die Datei geändert hat und wird die neue
Version benutzen. Lesen Sie bitte auch die FAQ
zur Meldung <link
xlink:href="&url.books.faq;/admin.html#root-not-found-cron-errors">
root: not found</link>.</para>
</important>
<para>Eine Benutzer-<filename>crontab</filename>, beispielsweise <screen>&prompt.user; <userinput>crontab -e</userinput></screen>
die Datei <filename>crontab-datei</filename>, können Sie mit
jedem Editor erstellen. Die
Benutzer-<filename>crontab</filename> installieren Sie mit dem
nachstehenden Befehl:</para>
<screen>&prompt.root; <userinput>crontab crontab-datei</userinput></screen> <para>Dies wird die crontab des Benutzers mit dem
voreingestellten Editor öffnen. Wenn der Benutzer diesen
Befehl zum ersten Mal ausführt, wird eine leere Datei
geöffnet. Nachdem der Benutzer eine crontab erstellt hat,
wird die Datei mit diesem Kommando zur Bearbeitung
geöffnet.</para>
<para>Das Argument zum Befehl &man.crontab.5; <para>Es empfiehlt sich, die folgenden Zeilen an den Anfang der
ist die vorher erstellte crontab-Datei hinzuzufügen, um die Umgebungsvariablen zu
<filename>crontab-datei</filename>.</para> setzen und die einzelnen Felder zu beschreiben:</para>
<para>Der Befehl <command>crontab -l</command> zeigt <programlisting>SHELL=/bin/sh
die installierte crontab-Datei an.</para> PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# Order of crontab fields
# minute hour mday month wday command</programlisting>
<para>Benutzer, die eine eigene <para>Fügen Sie dann für jedes Kommando oder Skript eine Zeile
<filename>crontab</filename>-Datei ohne Vorlage erstellen hinzu, mit der Angabe wann das Kommando ausgeführt werden
wollen, können den Befehl <command>crontab -e</command> soll. In diesem Beispiel wird ein Bourne Shell Skript täglich
verwenden. Dieser Befehl ruft einen Editor auf und um 14:00&nbsp;Uhr ausgeführt. Da der Pfad zum Skript nicht in
installiert beim Verlassen des Editors die <literal>PATH</literal> enthalten ist, wird der vollständige
<filename>crontab</filename>-Datei.</para> Pfad zum Skript angegeben:</para>
<para>Wollen Sie die installierte <programlisting>0 14 * * * /usr/home/dru/bin/mycustomscript.sh</programlisting>
Benutzer-crontab entfernen, rufen Sie den
<command>crontab -r</command>.</para> <tip>
<para>Bevor Sie ein eigenes Skript verwenden, stellen Sie
sicher, dass es ausführbar ist und dass es mit den wenigen
Umgebungsvariablen von <application>cron</application>
funktioniert. Um die Umgebung nachzubilden, die der obige
<application>cron</application>-Eintrag bei der Ausführung
verwenden würde, benutzen Sie dieses Kommando:</para>
<screen>&prompt.user; <userinput>env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/<replaceable>dru</replaceable> LOGNAME=<replaceable>dru</replaceable> <replaceable>/usr/home/dru/bin/mycustomscript.sh</replaceable></userinput></screen>
<para>Die Umgebung von <application>cron</application> wird in
&man.crontab.5; beschrieben. Es ist wichtig, dass
sichergestellt wird, dass die Skripte in der Umgebung von
<application>cron</application> korrekt arbeiten, besonders
wenn Befehle enthalten sind, welche Dateien mit Wildcards
löschen.</para>
</tip>
<para>Wenn Sie mit der Bearbeitung der crontab fertig sind,
speichern Sie die Datei. Sie wird automatisch installiert
und <application>cron</application> wird die darin enthalten
Cronjobs zu den angegebenen Zeiten ausführen. Um die Cronjobs
in einer crontab aufzulisten, verwenden Sie diesen
Befehl:</para>
<screen>&prompt.user; <userinput>crontab -l</userinput>
0 14 * * * /usr/home/dru/bin/mycustomscript.sh</screen>
<para>Um alle Cronjobs einer Benutzer-crontab zu löschen,
verwenden Sie diesen Befehl:</para>
<screen>&prompt.user; <userinput>crontab -r</userinput>
remove crontab for dru? <userinput>y</userinput></screen>
</sect2> </sect2>
</sect1> </sect1>
@ -702,8 +698,11 @@ ifconfig_fxp0="inet 10.1.1.1/8"</programlisting>
<para>Die Treiber für gebräuchliche Netzwerkkarten sind schon im <para>Die Treiber für gebräuchliche Netzwerkkarten sind schon im
<filename>GENERIC</filename>-Kernel enthalten, so dass die <filename>GENERIC</filename>-Kernel enthalten, so dass die
Karte während des Systemstarts erkannt werden sollte. In Karte während des Systemstarts erkannt werden sollte. Die
diesem Beispiel findet das System zwei Karten, die den Systemmeldungen können Sie sich mit
<command>more /var/run/dmesg.boot</command> ansehen. Mit der
Leertaste können Sie durch den Text blättern. In diesem
Beispiel findet das System zwei Karten, die den
&man.dc.4;-Treiber benutzen:</para> &man.dc.4;-Treiber benutzen:</para>
<screen>dc0: &lt;82c169 PNIC 10/100BaseTX&gt; port 0xa000-0xa0ff mem 0xd3800000-0xd38 <screen>dc0: &lt;82c169 PNIC 10/100BaseTX&gt; port 0xa000-0xa0ff mem 0xd3800000-0xd38