Crontab ist ein Befehl zum Einrichten einer periodischen Ausführung. Sein Daemon-Prozess ist crond. Es gibt zwei Konfigurationsmodi von crontab, einen auf Benutzerebene und einen auf Systemebene. Wir werden sie hier separat besprechen. Crontab auf Benutzerebene Wenn Benutzer einen neuen zyklischen Jobplan erstellen, steht der verwendete Crontab-Befehl crontab -e allen Benutzern zur Verfügung. Normale Benutzer können nur für sich selbst geplante Aufgaben festlegen. Dann automatisch nach /var/spool/cron/usename schreiben Benutzerkontrolldatei /etc/cron.allow: /etc/cron.deny: Befehl crontab [-u Benutzername] [-l|-e|-r] Parameter: -u: Nur Root kann diese Aufgabe ausführen, d. h. anderen Benutzern beim Erstellen/Löschen der Crontab-Arbeitsplanung helfen. -e: Ruft vi auf, um den Arbeitsinhalt von Crontab zu bearbeiten. -l: Listet den Arbeitsinhalt von Crontab auf. -r: Löscht den gesamten Crontab-Arbeitsinhalt. Grammatik # .---------------- Minuten (0 - 59) # | .------------- Stunden (0 - 23) # | | .---------- Datum (1 - 31) # | | | .------- Monat (1 – 12) ODER Jan, Feb, Mär, Apr ... # | | | | .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER So, Mo, Di, Mi, Do, Fr, Sa # | | | | | # * * * * * Befehl Die Syntax ist der Crontab auf Systemebene sehr ähnlich. Der Unterschied besteht darin, dass hier der Ausführungsbenutzer nicht angegeben werden muss, während dies in der Crontab auf Systemebene (/etc/crontab) erforderlich ist. Hier sind einige Beispiele: */10 * * * * /home/test.sh #Führen Sie das Skript /home/test.sh alle 10 Minuten als aktueller Benutzer aus 0 2 * * * /home/test.sh #Jeden Tag um 2 Uhr 0 5,17 * * * /home/test.sh #Jeden Tag um 5 Uhr und 17 Uhr 0 17 * * sun /home/test.sh #Jeden Sonntag um 17 Uhr 0 4,17 * * sun,mon /home/test.sh #Jeden Montag und Sonntag @reboot /home/test.sh #Beim Neustart des Systems Hier ist ein Online-Tool empfohlen: Generieren Sie Cron-Ausdrücke online Systemweite Crontab Crontab auf Systemebene wird im Allgemeinen für Routineaufgaben des Systems verwendet. Diese Methode ist bequemer und direkter, um geplante Aufgaben für andere Benutzer festzulegen, und kann auch die Ausführung von Shells usw. angeben. Die Konfigurationsdatei ist /etc/crontab und kann nur vom Root-Benutzer bearbeitet werden. Bearbeiten Sie /etc/crontab Der Standardinhalt ist wie folgt: SHELL=/bin/bash Hiermit geben Sie an, welche Shell-Schnittstelle verwendet werden soll PATH=/sbin:/bin:/usr/sbin:/usr/bin Hiermit geben Sie den Dateisuchpfad an MAILTO=root Wenn es einen zusätzlichen STDOUT gibt, an den die Daten per E-Mail gesendet werden, können Sie einen Systembenutzer oder eine E-Mail-Adresse angeben, z. B. [email protected] # Weitere Einzelheiten finden Sie unter man 4 crontabs # Beispiel einer Jobdefinition: # .---------------- Minuten (0 - 59) # | .------------- Stunden (0 - 23) # | | .---------- Datum (1 - 31) # | | | .------- Monat (1 – 12) ODER Jan, Feb, Mär, Apr ... # | | | | .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER So, Mo, Di, Mi, Do, Fr, Sa # | | | | | # * * * * * Benutzername-Befehl Im Augenblick: Ausführen von Benutzeraufgabenbefehlen in täglichen, monatlichen und wöchentlichen Zeiträumen Wenn ich beispielsweise eine geplante Aufgabe hinzufügen möchte, um das Skript /home/test.sh alle 10 Minuten als Root auszuführen, würde ich Folgendes hinzufügen: */10 * * * * root /home/test.sh Beachten Sie, dass Sie den Executor-Root nicht auslassen sollten (der Executor muss nicht in der Crontab auf Benutzerebene angegeben werden). Andernfalls wird im Protokoll /var/log/cron der Fehler „ERROR (getpwnam() fehlgeschlagen)“ angezeigt und die geplante Aufgabe wird nicht ordnungsgemäß ausgeführt. Starten Sie den Dienst neu Im Allgemeinen liest crontab unter Linux die Routineaufgaben in /etc/crontab jede Minute automatisch neu. Aus bestimmten Gründen oder in anderen Unix-Systemen wird crontab jedoch in den Speicher gelesen, sodass es nach der Änderung von /etc/crontab möglicherweise nicht sofort ausgeführt wird. Zu diesem Zeitpunkt müssen Sie den crontab-Dienst neu starten. Hier nehmen wir CentOS als Beispiel: service crond start //Dienst starten service crond stop //Dienst beenden service crond restart //Dienst neu starten service crond reload //Konfiguration neu laden service crond status //Dienststatus Wenn es CentOS 7 ist: systemctl restart crond.service //Dienst neu startensystemctl start crond.service //Dienst startensystemctl stop crond.service //Dienst stoppensystemctl reload crond.service //Konfiguration neu ladensystemctl status crond.service //Dienststatus Weitere Überlegungen Unterdrücken unerwünschter Ausgaben Wenn in den Ausführungsergebnissen oder Ausführungsoptionen Ausgabedaten vorhanden sind, werden die Daten per E-Mail an das von MAILTO angegebene Konto gesendet. Wenn ein bestimmter Zeitplan immer wieder fehlschlägt und ein Problem mit dem E-Mail-Dienst vorliegt (tatsächlich habe ich diesen Dienst überhaupt nicht aktiviert), wird eine große Anzahl von Dateien in /var/spool/clientmqueue/ generiert. Daher ist es am besten, nach dem Befehl in crontab > /dev/null 2>&1 hinzuzufügen 2>: Umleitungsfehler. Überprüfen Sie die Protokolle Protokolle werden in /var/log/cron gespeichert. Grammatische Unterschiede
Verweise Bird Brothers Linux Private Kitchen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Methode zur Implementierung von Leistungstests der MySQL-Datenbank durch das Sysbench-Tool
>>: JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode
Vorwort Die Methode zum Konfigurieren von IP-Adre...
In diesem Artikel wird der spezifische Code von j...
Überblick Prometheus ist ein Open-Source-Dienstüb...
Inhaltsverzeichnis 1. Teleport 1.1 Einführung in ...
Einführung Heute werde ich die Verwendung der Sum...
Box-Größe in CSS3 (Inhaltsbox und Rahmenbox) Mit ...
Wie können wir beim Beenden eines laufenden Conta...
Vorwort Die Benachrichtigungsleistenkomponente is...
Inhaltsverzeichnis Vorwort Was ist ein Filter So ...
REPLACE Syntax REPLACE(String,from_str,to_str) Da...
Vorwort Standardmäßig werden Nginx-Protokolle in ...
Vorwort MySQL unterstützt viele Arten von Tabelle...
In diesem Artikel wird der spezifische Code der U...
Inhaltsverzeichnis Gängige Zahlungsarten in Proje...
<br />Wenn wir über Navigation sprechen, geh...