Cron Es ist ein Programm, das Aufgaben nach Zeitplan ausführt. Ermöglicht wiederholtes Starten von Aufgaben. Ie. Die Aufgabe kann zu einem bestimmten Zeitpunkt oder nach einer bestimmten Zeit gestartet werden. Das Format und die Werte der Felder für benutzerdefinierte Crontab-Dateien werden am Ende des Artikels angegeben.
Beim Booten des Systems wird ein Cron-Demon gestartet, der die Warteschlange von Aufgaben und Benutzeraufgaben in crontab-Dateien überprüft. Beim Start überprüft der Cron-Dämon zuerst das Verzeichnis. /var/spool/cron Wenn crontab-Dateien verfügbar sind, haben crontab-Dateien Benutzernamen, die den Benutzernamen der /etc/passwd Jeder Benutzer kann nur eine Crontab-Datei haben, es können mehrere Einträge in der Datei vorhanden sein.
Mit anderen Worten, crontab-Dateien enthalten Anweisungen für den cron-Dämon, der die in der crontab-Datei beschriebenen Aufgaben ausführt. Alle crontab Dateien aus dem Verzeichnis /var/spool/cron Sie werden in den Speicher geladen, während Dateien aus dem /etc/cron.d Der Cron-Dämon lädt dann den Dateiinhalt herunter. /etc/crontab Mit Standardeinstellungen, die Inhalte /etc/crontab Es ist wie folgt:
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 Dateiinformation zeigt an, dass:
Katalog /etc/cron.hourly Es wird jede Stunde in der ersten Minute der Stunde gestartet.
Katalog /etc/cron.daily Es wird jeden Tag in der zweiten Minute der vierten Stunde gestartet.
Katalog /etc/cron.weekly Es wird jeden Sonntag in der zweiundzwanzigsten Minute gestartet. vierter Stunde.
Katalog /etc/cron.monthly Es wird jeden ersten Tag des Monats in der zweiundvierzigsten Minute der vierten Stunde beginnen.
SHELL=/bin/bash Mittel, um die Befehle zu verwenden /bin/bash Wenn eine Variable nicht angegeben ist, wird der Wert von /etc/passwd Der Benutzer ist der Besitzer der Datei.
HOME=/ Root-Verzeichnis für den Benutzer (optional) Wenn Sie Zugriff auf spezielle Eigenschaften des Interpreters benötigen, können die Werte der Variablen SHELL und HOME geändert werden, unabhängig davon, was in /etc/passwd
MAILTO=root Es bedeutet, wem eine Nachricht über die Ergebnisse der Arbeit von Teams zu senden.
Alle Inhalte aus diesen Verzeichnissen werden mit Root-Benutzerzugriffsrechten ausgeführt, und Dateien müssen über "Ausführungsberechtigungen" verfügen. http://rst.void.ru/texts/chmod.txtDaher ist es vor dem Platzieren von Dateien in einem dieser Verzeichnisse notwendig, sicherzustellen, dass Skripte das System nicht schädigen.
Sobald der Cron-Dämon läuft und den Inhalt aller Crontab-Dateien gelesen hat, sitzt er im Leerlauf und wacht jede Minute auf, um zu sehen, ob irgendwelche Befehle zu einem bestimmten Zeitpunkt erforderlich sind oder ob eine neue Crontab-Datei erschienen ist, die verarbeitet werden muss. Der Cron-Dämon erkennt Änderungen in der Zeit des Änderns von Dateien oder Verzeichnissen, diese Eigenschaft eliminiert die Notwendigkeit, den Dämon neu zu starten.
/etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
Nur für den Root-Benutzer verfügbar, müssen Sie für die Verwendung von crontab-Dateien durch Benutzer den Befehl crontab verwenden. Der Befehl wird verwendet, um eine Datei für den Cron-Dämon zu erstellen, zu ändern und hinzuzufügen.
Beispiel
Betrachten Sie ein Beispiel für die Erstellung einer crontab-Datei für einen Benutzer, home Verzeichnis /home/user
Ziel: Führen Sie jede Minute der Datei /home/user/mailwhich wird die Mail verschicken
Der Inhalt der Mail-Datei (die Datei muss die Berechtigung zum Starten haben!) z.B. -rwxr-xr-x
#!/bin/bash mess="test cron" echo "$mess" |mutt -s "subj" -m application/octet-stream \n [email protected]
1. Erstellen einer temporären Datei /home/user/test Der Inhalt der Testdatei ist:
SHELL=/bin/bash MAILTO=user 0-59 * * * * /home/user/mail
2. Starten Sie den crontab-Befehl im Terminal /home/user/test
Alle. Danach im Katalog /var/spool/cron Es wird eine "Benutzer"-Datei mit ungefähr folgendem Inhalt erstellt:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/home/user/test installed on Mon Mar 29 02:31:34 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash MAILTO=user 0-59 * * * * /home/user/mail
Datei. /home/user/mail Der Cron-Dämon wird jede Minute gestartet.
Zugang zu Katalogen /var/spool/cron unprivilegierter Benutzer wird geschlossen, um den Benutzer "Benutzer" zu sehen, ob er eine Crontab-Datei hat, wählen Sie einfach den Befehl crontab -l Wenn die Datei existiert, wird ihr Inhalt angezeigt.
Ein Befehl wird verwendet, um die Datei zu löschen. crontab -r
Ein Team wird zum Bearbeiten verwendet crontab -e
Um crontab-Dateien zu verwalten, verwendet der Benutzer "root" eine Syntax:
crontab -u user_name file Erstellen einer crontab-Datei aus der "file"-Datei für den Benutzer "user_name", -u bedeutet, dessen crontab verarbeitet wird. Wenn die Option nicht angegeben ist, wird das crontab des Benutzers, der den crontab-Befehl gestartet hat, verarbeitet.
crontab -u user_name -l Sehen Sie sich die crontab-Datei des Benutzers "user_name" an
crontab -u user_name -r - Löschen Sie die crontab-Datei des Benutzers "user_name"
crontab -u user_name -e - Bearbeiten der crontab-Datei des Benutzers "user_name" mit einem von der VISUAL- oder EDITOR-Umgebungsvariablen angegebenen Editor
Format und Werte der Felder
Jeder Befehl in einer benutzerdefinierten crontab-Datei nimmt eine Zeile ein und besteht aus sechs Feldern.
Das Gesamtformat des Teams. Es ist ratsam, diesen Text am Anfang der crontab-e Datei hinzuzufügen. Dann ist es immer sichtbar und wird als Spickzettel verwendet:
# ------------------------------------------------ # минута час день_месяца месяц день_недели команда # ------------------------------------------------ # Допустимые значения: # минута от 0 до 59 # час от 0 до 23 # день_месяца от 1 до 31 # месяц от 1 до 12 (можно три буквы из названия месяца, # регистр не имеет значения от jan до dec) # день_недели от 0 до 6 (0 это воскресенье, # можно писать от sun до sat) # Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному # значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом.
Zum Beispiel:
* 5 4-10 0-3 * echo "HELLO" # печать HELLO в 5:00 на 4,5,6,7,8,9,10 дни января, февраля, марта и апреля
schrittweise Aufzeichnung
* */2 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
Entspricht dem vorherigen Beispiel (Liste):
* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
dasselbe mit Angabe des Bereichs:
* 0-23/2 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
59 23 31 dec * echo "Happy new year" # без комментариев :), поздравит с новым годом
Um die Aufgabe cron zu debuggen, können Sie das Ergebnis in eine Datei umleiten
Beispiel:
0-59 * * * * /home/user/mail 2>/tmp/tmp.cron
Wenn zu Beginn des Teams /home/user/mail Fehler werden auftreten, sie werden in der Datei aufgezeichnet. /tmp/tmp.cron Und Sie können immer herausfinden, warum. Im Falle der Umleitung der Ausgabe in eine Datei, einen Brief, wird der in der MAILTO-Variable angegebene Benutzer nicht gesendet.
Sie können Informationen zu allen Befehlen sehen, die vom Cron-Dämon im Verzeichnis ausgeführt werden. /var/log Diese werden cron, cron1 und so weiter genannt.
In der Akte. /var/log/cron Aufgezeichnete Startzeit aller Cron-Aufgaben für den Vortag
Mar 29 04:03:00 rst CROND[4434]: (user) CMD (/home/user/mail) Mar 29 04:03:59 rst CROND[4493]: (user) CMD (/home/user/mail) Mar 29 04:05:00 rst CROND[4507]: (user) CMD (/home/user/mail) Mar 29 04:06:00 rst CROND[4549]: (user) CMD (/home/user/mail)
Andere cron1,cron2-Dateien enthalten ähnliche Informationen, aber älter als cron. Hier ist alles, was Sie über die Verwendung von Cron und Crontab wissen müssen.
Ich war bei dir. Sergej Lazarenko. Wenn Sie diese Anweisung benötigen, abonnieren Sie Updates von der Website zu Ihrer E-Mail. Teilen Sie den Link zu den Anweisungen, indem Sie auf Ihr Social-Network-Symbol am Ende des Artikels klicken.
Lassen Sie uns jetzt in einer anderen Welt entspannen, indem wir ein schönes Video über die Unterwasserjagd ansehen:




Kommentar