So konfigurieren Sie Linux CentOS für die regelmäßige Ausführung von Skripten

So konfigurieren Sie Linux CentOS für die regelmäßige Ausführung von Skripten

Oft möchten wir, dass der Server regelmäßig ein Skript ausführt, um einen Vorgang auszulösen. Wenn wir beispielsweise mit dem Tool von Qinius hochladen und der Synchronisierungsdatei eine neue Datei hinzugefügt wird, können wir ein geplantes Skript bereitstellen, um den benötigten Synchronisierungsbefehl auszuführen (das Tool qrsbox von Qinius führt die Synchronisierung automatisch durch. Sie müssen nur eine Datei zum Synchronisierungsordner hinzufügen, um den Upload automatisch zu überwachen).

1. Installieren Sie crontab

[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum installiere crontabs

Das Paket vixie-cron ist das Hauptprogramm von cron;

Das Crontabs-Paket ist ein Programm, das die zum Ausführen des Cron-Daemons verwendeten Tabellen installiert, deinstalliert oder auflistet.

2. Crontab-Dienst aktivieren

service crond start //Starten Sie den Dienst

Verwenden Sie die folgende Methode, um diesen Cron-Dienst zu starten und zu stoppen:

service crond start //Starten Sie den Dienst

service crond stop //Den Dienst beenden

service crond restart //Dienst neu starten

service crond reload //Konfiguration neu laden

Den Crontab-Dienststatus anzeigen: service crond status

Den Crontab-Dienst manuell starten: service crond start

Überprüfen Sie, ob der Crontab-Dienst so eingestellt ist, dass er beim Booten gestartet wird, indem Sie den Befehl ausführen: ntsysv

Zum Autostart hinzufügen:

chkconfig –level 35 crond ein

Darüber hinaus möchte ich die Befehle ntsysv und chkconfig vorstellen:

Der Befehl ntsysv ist ein grafischer Verwaltungsmodus für die Benutzeroberfläche, mit dem der Startvorgang festgelegt werden kann. Er muss installiert werden, bevor er verwendet werden kann. Nachdem yum install -y ntsysv installiert wurde, müssen Sie nur ntsysv ausführen, um eine grafische Verwaltungsoberfläche anzuzeigen.

Auf- und Ab-Tasten: können zum Wechseln zwischen den Diensten im mittleren Feld verwendet werden;

Leertaste: kann verwendet werden, um den gewünschten Dienst auszuwählen, [*] bedeutet Starten;

Tabulatortaste: kann zwischen Feldern, OK und Abbrechen wechseln;

Taste [F1]: Sie können die Beschreibung des Dienstes anzeigen.

Legen Sie bezüglich des Befehlszeilenformats von chkconfig fest, ob beim Booten automatisch gestartet werden soll, oder fragen Sie den Ausführungsstatus eines Dienstes auf 6 Boot-Ebenen ab.

Richten Sie den Crond-Dienst so ein, dass er beim Booten automatisch gestartet wird:

[root@CentOS ~]# chkconfig crond on

Zeigen Sie den Ausführungsstatus der Crond-Dienste auf jeder Startebene an.

[root@CentOS ~]# chkconfig –list crond

crond 0: Deaktivieren 1: Deaktivieren 2: Aktivieren 3: Aktivieren 4: Aktivieren 5: Aktivieren 6: Deaktivieren

Sie können sehen, dass der Crond-Dienst automatisch auf Ebene 2, 3, 4 und 5 gestartet wird.

Brechen Sie den automatischen Start des Crond-Dienstes ab:

[root@CentOS ~]# chkconfig crond off

3. Legen Sie das auszuführende Skript fest

Es gibt zwei Möglichkeiten, eine neue Planungsaufgabe hinzuzufügen:

1) Geben Sie crontab -e in die Kommandozeile ein, fügen Sie die entsprechenden Tasks hinzu, speichern Sie und beenden Sie.

2) Bearbeiten Sie die Datei /etc/crontab direkt, also vi /etc/crontab, und fügen Sie die entsprechenden Aufgaben hinzu.

Die crontab -e-Konfiguration ist für einen bestimmten Benutzer, während die Bearbeitung von /etc/crontab für Systemaufgaben ist.

Geplante Aufgaben anzeigen

crontab -l //Listet alle aktuell geplanten Aufgaben auf

crontab -l -u jp //Listet alle geplanten Aufgaben für den Benutzer jp auf

Löschen eines Aufgabenplaners

crontab -r //Alle Taskplanungsjobs löschen

Bearbeiten Sie vim /etc/crontab direkt. Das Standarddateiformat ist wie folgt:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=Stamm
HOME=/

# Weitere Einzelheiten finden Sie unter man 4 crontabs

# Beispiel einer Jobdefinition:
# .---------------- Minute (0 - 59)
# | .------------- Stunde (0 - 23)
# | | .---------- Tag des Monats (1 - 31)
# | | | .------- Monat (1 – 12) ODER Jan., Feb., März, Apr. …
# | | | | .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER So, Mo, Di, Mi, Do, Fr, Sa
# | | | | |
# * * * * * Benutzername-Befehl, der ausgeführt werden soll

Diese Texterklärung ist ziemlich intuitiv.

Sternchen (*): steht für alle möglichen Werte. Wenn das Monatsfeld beispielsweise ein Sternchen enthält, bedeutet dies, dass der Befehlsvorgang jeden Monat ausgeführt wird, nachdem die Einschränkungen anderer Felder erfüllt sind.

Komma (,): Sie können einen durch Kommas getrennten Wertebereich als Liste angeben, zum Beispiel „1,2,5,7,8,9“

Mittlerer Strich (-): Sie können den mittleren Strich zwischen ganzen Zahlen verwenden, um einen Bereich von ganzen Zahlen darzustellen. Beispielsweise bedeutet „2-6“ „2,3,4,5,6“.

Schrägstrich (/): Mit einem Schrägstrich können Sie die Häufigkeit des Zeitintervalls angeben. „0-23/2“ bedeutet beispielsweise eine Ausführung alle zwei Stunden. Gleichzeitig können Schrägstriche zusammen mit Sternchen verwendet werden. Beispielsweise bedeutet */10 im Minutenfeld eine Ausführung alle zehn Minuten.

Hier sind ein paar Beispiele, die im Wesentlichen einige gängige Situationen abdecken:

Beispiel 1

: : : : : : : : : : : : : : :
# Führen Sie alle ausführbaren Dateien im Verzeichnis /etc/cron.daily jeden Tag um 4:22 Uhr als Root aus. Der Parameter run-parts gibt an, dass alle ausführbaren Dateien im folgenden Verzeichnis ausgeführt werden.

Beispiel 2

#Apache jeden Abend um 21:30 Uhr neu starten
30 21 * * * /usr/local/etc/rc.d/lighttpd neu starten
#Starten Sie Apache am 1., 10. und 22. jedes Monats um 4:45 Uhr neu
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd neu starten
#Starten Sie Apache jeden Samstag und Sonntag um 1:10 Uhr neu
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd neu starten
#Starten Sie Apache täglich alle 30 Minuten zwischen 18:00 und 23:00 Uhr neu
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd neu starten
#Apache jeden Samstag um 23:00 Uhr neu starten
0 23 * * 6 /usr/local/etc/rc.d/lighttpd neu starten
#Starten Sie Apache jede Stunde zwischen 23:00 und 7:00 Uhr neu
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd neu starten
#Apache jede Stunde neu starten
0 */1 * * * /usr/local/etc/rc.d/lighttpd neu starten
#Starten Sie Apache am 4. jedes Monats und jeden Montag bis Mittwoch um 11 Uhr neu
0 11 4 * Mo-Mi /usr/local/etc/rc.d/lighttpd Neustart
#Starten Sie Apache am 1. Januar um 4:00 Uhr neu
0 4 1 jan * /usr/local/etc/rc.d/lighttpd neu starten
#Zeit jede halbe Stunde synchronisieren 0/30 * * * * /usr/sbin/ntpdate 210.72.145.44

Beachten

* *1 * * * Der Befehl wird jede Minute innerhalb jeder Stunde ausgeführt.

Sie müssen die Anzahl der Minuten jeder auszuführenden Stunde angeben, d. h. das erste * muss in eine Zahl geändert werden.

Denn das * steht für jede Minute.

Es gibt keinen Unterschied zwischen /1 und Stunde, beides geschieht einmal pro Stunde.

Wenn Sie */2 einstellen, wird es tatsächlich nach der Anzahl der Stunden ausgeführt, die durch 2 teilbar sind, statt nach 2 Stunden ab Beginn der Zeiteinstellung. Wenn es beispielsweise auf 9 Uhr eingestellt ist, wird es um 10 Uhr ausgeführt.

Schließlich kann es zu folgendem Problem kommen

Geben Sie crontab -l als Root-Benutzer ein, um anzuzeigen

kein Crontab für Root. Beispiel:

[root@CentOS ~]# crontab -l

kein Crontab für Root

Dieses Problem ist sehr einfach. Geben Sie außerdem crontab -e als Root-Benutzer ein.

Drücken Sie Esc. Drücken Sie: wq Enter.

Es gibt kein Problem, wenn Sie crontab -l eingeben

Der Hauptgrund ist, dass dieser Linux-Server zum ersten Mal Crontab verwendet und die entsprechende Datei noch nicht generiert wurde. Nach der Ausführung der Bearbeitung (crontab -e) wird diese Datei generiert.

Die obige Methode zum Konfigurieren geplanter Skripts in Linux CentOS ist alles, was ich mit Ihnen teilen kann. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • So richten Sie eine geplante Aufgabe ein, um ein bestimmtes Skript in CentOS auszuführen
  • CentOS7: Geplante Aufgaben festlegen
  • So legen Sie einen geplanten Neustart mit Crontab in Linux CentOS fest
  • Konfigurationsmethode für geplante Linux-Crontab-Aufgaben (ausführliche Erklärung)

<<:  Implementierung integrierter Module und benutzerdefinierter Module in Node.js

>>:  Detaillierte Erläuterung der Funktionen und Verwendung allgemeiner MySQL-Speicher-Engines

Artikel empfehlen

MySQL Series II-Konfiguration für mehrere Instanzen

Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...

Detaillierte Erklärung zur Verwendung von Vue-Resource-Interceptors

Vorwort Abfangjäger In einigen modernen Front-End...

Vue-Anfängerhandbuch: Umgebungserstellung und Erste Schritte

Inhaltsverzeichnis Erster Blick Erstellen einer V...

So installieren Sie Linux Flash

So installieren Sie Flash unter Linux 1. Besuchen...

Zusammenfassung gängiger MySQL-Befehle

Festlegen des MySQL-Root-Passworts Melden Sie sic...

Vue implementiert einen einfachen Rechner

In diesem Artikelbeispiel wird der spezifische Co...

Auszeichnungssprache - vereinfachte Tags

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Uniapp implementiert Beispielcode für die Anmeldung mit DingTalk-Scancode

Da Uniapp nicht über eine autorisierte DingTalk-A...