Cron-Job wird verwendet, um Befehle zu planen, die regelmäßig ausgeführt werden müssen. Damit können Sie bestimmte Befehle oder Skripte so konfigurieren, dass sie regelmäßig innerhalb einer festgelegten Zeit ausgeführt werden. cron ist eines der nützlichsten Tools in Linux- oder Unix-ähnlichen Systemen. Der Cron-Dienst (Daemon) läuft im Hintergrund des Systems und überprüft kontinuierlich die Datei /etc/crontab und die Verzeichnisse /etc/cron.*/. Außerdem wird das Verzeichnis /var/spool/cron/ überprüft.
crontab-Befehl
crontab ist ein Befehl zum Installieren, Deinstallieren oder Auflisten geplanter Aufgaben. Die Cron-Konfigurationsdatei wird verwendet, um den Cron(8)-Daemon von Vixie Cron zu steuern. Jeder Benutzer kann seine eigene Crontab-Datei haben. Obwohl sich diese Dateien im Verzeichnis /var/spool/cron/crontabs befinden, bedeutet dies nicht, dass Sie sie direkt bearbeiten können. Sie müssen Ihre eigenen geplanten Aufgaben über den Befehl crontab bearbeiten oder konfigurieren.
Typen geplanter Konfigurationsdateien
Konfigurationsdateien werden in die folgenden verschiedenen Typen unterteilt:
Crontab auf Systemebene für UNIX oder Linux: Dieser Typ wird normalerweise von denen verwendet, die erfordern Root- oder ähnliche Berechtigungen für Systemdienste und wichtige Aufgaben. Das sechste Feld (siehe Feldeinführung unten) ist der Benutzername, der zur Angabe der Benutzeridentität verwendet wird, unter der dieser Befehl ausgeführt wird. Auf diese Weise kann die Crontab des Systems als jeder Benutzer Vorgänge ausführen.
Crontab des Benutzers: Benutzer können den Befehl crontab verwenden, um ihre eigenen geplanten Aufgaben zu installieren. Das sechste Feld ist der Befehl, der ausgeführt werden muss. Alle Befehle werden als der Benutzer ausgeführt, der die Crontab-Aufgabe erstellt hat.
Hinweis: Diese Q&A-Cron-Implementierung wurde von Paul Vixie geschrieben und ist in vielen Linux-Distributionen und Unix-ähnlichen Systemen (wie der beliebten 4. Version von BSD) enthalten. Seine Syntax ist mit verschiedenen Crond-Implementierungen kompatibel.
Wie installiere, erstelle oder bearbeite ich meine eigenen geplanten Aufgaben?
Um Ihre Crontab-Datei zu bearbeiten, geben Sie den folgenden Befehl an der Linux- oder Unix-Shell-Eingabeaufforderung ein:
$ crontab -e
crontab-Syntax (Feld Einführung) Die Die Syntax von
lautet:
1 2 3 4 5 /path/to/command arg1 arg2
oder
1 2 3 4 5 /root/ntp_sync.sh
Unter ihnen:
Das erste Feld: Minuten (0-59)
Das zweite Feld: Stunden (0-23)
Das 3. Feld: Datum (0-31)
Das 4. Feld: Monat (0-12 [12 steht für Dezember])
Das 5. Feld: Tag von die Woche (0-7 [7 oder 0 steht für Sonntag])
/path/to/command – der Name des Skripts oder Befehls, dessen Ausführung geplant ist
Einfach zu merkendes Format:
* * * * * Auszuführender Befehl
| der Woche (0 - 7) (Sonntag ist 0 oder 7)| ------ Monat (1 - 12)| ) |. ---------- Stunden (0 - 23)
------------ Minuten (0 - 59)
Einfache Crontab Beispiel:
### Führen Sie das Backupscript-Skript alle 5 Minuten aus ##*/5 * * * * /root/backupscript.sh### Jeden Tag um 1 Uhr morgens Führen Sie das Backupscript-Skript aus ##0 1 * * * /root/backupscript.sh### Führen Sie das Backupscript-Skript um 3:15 Uhr am ersten Morgen jedes Monats aus ##15 3 1 * * /root/backupscript.sh
Wie Um Operatoren zu verwenden
können Sie mehrere Werte für ein Feld angeben. Es stehen drei Operatoren zur Verfügung:
Asterix (*): Dieser Operator gibt alle verfügbaren Werte für an Feld. Beispielsweise entspricht in einem Stundenfeld ein Sternchen jeder Stunde; in einem Monatsfeld entspricht ein Sternchen jedem Monat.
Komma (,): Dieser Operator gibt eine Liste mit mehreren Werten an, zum Beispiel: 1,5,10,15,20,25.
Pferd (-): Dieser Operator gibt a an Wertebereich, zum Beispiel: 5-15, was der Eingabe von 5,6,7,8,9,…,13,14,15 mit dem Kommaoperator entspricht.
Trennzeichen (/): Dieser Operator gibt einen Schrittwert an, zum Beispiel: 0-23/ kann im Stundenfeld verwendet werden, um anzugeben, dass ein bestimmter Befehl stündlich ausgeführt wird. Dem Schrittwert kann auch der Sternchenoperator folgen. Wenn Sie möchten, dass die Befehlszeile alle 2 Stunden ausgeführt wird, können Sie */2 verwenden.
So deaktivieren Sie die E-Mail-Ausgabe
Standardmäßig wird die Ausgabe eines Befehls oder Skripts (falls vorhanden) an Ihr lokales E-Mail-Konto gesendet. Wenn Sie keine von crontab gesendeten E-Mails mehr erhalten möchten, müssen Sie >/dev/null 2>&1 am Ende des ausgeführten Befehls hinzufügen, zum Beispiel:
0 3 * * * /root/backup .sh > ;/dev/null 2>&1
Wenn Sie den Ausgabeinhalt an ein bestimmtes E-Mail-Konto senden möchten, z. B. vivek@nixcraft.in, müssen Sie eine MAILTO-Variable als definieren folgt:
MAILTO="vivek@nixcraft.in"0 3 * * * /root/backup.sh >/dev/null 2>&1
Greifen Sie auf die Schaltfläche „Deaktivieren“ zu Weitere Informationen finden Sie im Crontab-Befehl „E-Mail-Benachrichtigungen“.
Aufgaben: Listen Sie alle Ihre geplanten Aufgaben auf
Geben Sie den folgenden Befehl ein:
# crontab -l# crontab -u Benutzername -l
Um alle geplanten Aufgaben zu löschen, können Sie den folgenden Befehl verwenden:
### Löschen Sie die aktuelle geplante Aufgabe crontab -r
### Löschen Sie die geplanten Aufgaben unter einem bestimmten Benutzernamen. Dieser Befehl erfordert das Root-Benutzer Identitätsausführung crontab -r -u Benutzername
Verwenden Sie spezielle Zeichenfolgen, um Zeit zu sparen
Sie können eine der folgenden 8 speziellen Zeichenfolgen verwenden, um die ersten fünf Felder wie folgt zu ersetzen Das spart Ihnen nicht nur Zeit, sondern verbessert auch die Lesbarkeit.
Beispiel:
Führen Sie den Befehl ntpdate jede Stunde aus
@hourly /path/to/ntpdate
Mehr über die Datei /etc/crontab und die Verzeichnisse /etc/cron.d/*
/etc/crontab ist die Crontab-Datei des Systems. Wird normalerweise nur vom Root-Benutzer oder Daemons zum Konfigurieren von Aufgaben auf Systemebene verwendet. Jeder einzelne Benutzer muss den Befehl crontab wie oben beschrieben verwenden, um seine eigenen Aufgaben zu installieren und zu bearbeiten. Das Verzeichnis /var/spool/cron/ oder /var/cron/tabs/ speichert die Crontab-Datei einzelner Benutzer, die im Home-Verzeichnis des Benutzers gesichert werden sollte.
Verstehen der Standarddatei /etc/crontab
Ein typischer Inhalt einer /etc/crontab-Datei ist wie folgt:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/# run-parts01 * * * * 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
Zuerst müssen Umgebungsvariablen definiert werden. Wenn die SHELL-Zeile weggelassen wird, verwendet Cron die Standard-SH-Shell. Wenn die PATH-Variable weggelassen wird, gibt es keinen Standardsuchpfad und alle Dateien müssen mithilfe absoluter Pfade gefunden werden. Wenn die HOME-Variable weggelassen wird, verwendet Cron stattdessen das Home-Verzeichnis des Aufrufers (Benutzers).
Außerdem liest cron Dateien im Verzeichnis /etc/cron.d/. Normalerweise speichern Systemdämonen wie sa-update oder sysstat ihre geplanten Aufgaben hier. Als Root-Benutzer oder Superuser können Sie die folgenden Verzeichnisse verwenden, um Ihre geplanten Aufgaben zu konfigurieren. Sie können Ihr Skript einfach hier einfügen. Der Befehl run-parts führt Skripte oder Programme aus, die sich in einem bestimmten Verzeichnis befinden, über die Datei /etc/crontab.
Geplante Backup-Aufgabe
# crontab -l > /path/to/file# crontab -u user -l /path/to/ Datei