Linux: Aufgabenplanung mit Crontab
Inhaltsverzeichnis:
- Was ist Crontab-Datei
- Crontab-Syntax und Operatoren
- Systemweite Crontab-Dateien
- Vordefinierte Makros
- Linux Crontab-Befehl
- Crontab-Variablen
- Crontab-Einschränkungen
- Cron Jobs Beispiele
- Fazit
Cron ist ein Scheduling-Daemon, der Aufgaben in festgelegten Intervallen ausführt. Diese Aufgaben werden als Cron-Jobs bezeichnet und hauptsächlich zur Automatisierung der Systemwartung oder -verwaltung verwendet.
Sie können beispielsweise einen Cron-Job einrichten, um sich wiederholende Aufgaben wie das Sichern von Datenbanken oder Daten, das Aktualisieren des Systems mit den neuesten Sicherheitspatches, das Überprüfen der Speicherplatznutzung, das Senden von E-Mails usw. zu automatisieren. Einige Anwendungen, wie z. B. Drupal oder Magento, erfordern Cron-Jobs, um bestimmte Aufgaben auszuführen.
Die Cron-Jobs können so geplant werden, dass sie nach Minute, Stunde, Tag des Monats, Monat, Wochentag oder einer beliebigen Kombination davon ausgeführt werden.
Was ist Crontab-Datei
Crontab (Cron-Tabelle) ist eine Textdatei, die den Zeitplan für Cron-Jobs angibt. Es gibt zwei Arten von Crontab-Dateien. Die systemweiten crontab-Dateien und die einzelnen Benutzer-crontab-Dateien.
Benutzer-Crontab-Dateien werden nach dem Namen des Benutzers gespeichert, und ihr Speicherort variiert je nach Betriebssystem. In Red Hat-basierten Systemen wie CentOS werden crontab-Dateien im Verzeichnis
/var/spool/cron/crontabs
gespeichert, während Debian- und Ubuntu-Dateien im Verzeichnis
/var/spool/cron/crontabs
.
Sie können die Benutzer-Crontab-Dateien zwar manuell bearbeiten, es wird jedoch empfohlen, den Befehl
crontab
zu verwenden.
/etc/crontab
und die Dateien im Verzeichnis
/etc/cron.d
sind systemweite crontab-Dateien, die nur von den Systemadministratoren bearbeitet werden können.
In den meisten Linux-Distributionen können Sie Skripte auch in die
/etc/cron.{hourly, daily, weekly, monthly}
Die Skripte werden jede
hour/day/week/month
jeden
hour/day/week/month
jede
hour/day/week/month
jeden
hour/day/week/month
.
Crontab-Syntax und Operatoren
Jede Zeile in der Benutzer-Crontab-Datei enthält sechs Felder, die durch ein Leerzeichen und den auszuführenden Befehl voneinander getrennt sind.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Die ersten fünf Felder können einen oder mehrere Werte enthalten, die durch ein Komma oder einen durch einen Bindestrich getrennten Wertebereich voneinander getrennt sind.
-
*-Der Sternchen-Operator bedeutet einen beliebigen Wert oder immer. Wenn Sie das Sternsymbol im Feld Stunde haben, bedeutet dies, dass die Aufgabe jede Stunde ausgeführt wird.,Komma-Operator können Sie eine Liste von Werten für die Wiederholung angeben. Wenn Sie zum Beispiel1, 3, 5im Feld Stunde haben, wird die Aufgabe um 1:00 Uhr, 3:00 Uhr und 5:00 Uhr ausgeführt.-- Mit dem Bindestrich-Operator können Sie einen Wertebereich angeben. Wenn Sie1-5im Feld Wochentag haben, wird die Aufgabe an jedem Wochentag (von Montag bis Freitag) ausgeführt./- Mit dem Schrägstrich können Sie Werte angeben, die in einem bestimmten Intervall zwischen ihnen wiederholt werden. Wenn Sie zum Beispiel*/4im Feld Stunde haben, bedeutet dies, dass die Aktion alle vier Stunden ausgeführt wird. Es entspricht der Angabe von0, 4, 8, 12, 16, 20. Anstelle eines Sternchens vor dem Schrägstrich können Sie auch einen Wertebereich verwenden.1-30/10bedeutet dasselbe wie1, 11, 21.
Systemweite Crontab-Dateien
Die Syntax von systemweiten Crontab-Dateien unterscheidet sich geringfügig von der von Benutzer-Crontabs. Es enthält ein zusätzliches obligatorisches Benutzerfeld, das angibt, welcher Benutzer den Cron-Job ausführen wird.
Es gibt mehrere spezielle Cron-Zeitplan-Makros, mit denen gemeinsame Intervalle festgelegt werden. Sie können diese Verknüpfungen anstelle der fünfspaltigen Datumsangabe verwenden. Mit dem Befehl crontab können Sie eine crontab-Datei zum Bearbeiten installieren oder öffnen. Mit dem Befehl crontab können Sie Cron-Jobs mit den folgenden Optionen anzeigen, hinzufügen, entfernen oder ändern: Der Befehl crontab öffnet die crontab-Datei mit dem in den Umgebungsvariablen
Der Cron-Daemon setzt automatisch mehrere Umgebungsvariablen. Systemadministratoren können mithilfe der Dateien
Standardmäßig ist nur die Datei
Wenn die Datei
Wenn keine der beiden Dateien vorhanden ist, können nur Benutzer mit Administratorrechten den Befehl
Im Folgenden finden Sie einige Cron-Job-Beispiele, die zeigen, wie Sie einen Task so planen, dass er in verschiedenen Zeiträumen ausgeführt wird. Führen Sie jeden Tag von Montag bis Freitag um 15:00 Uhr einen Befehl aus: Führen Sie alle 5 Minuten ein Skript aus und leiten Sie die Standardausgabe auf
Führen Sie jeden Montag um 15:00 Uhr zwei Befehle aus (verwenden Sie den Operator
Führen Sie alle 2 Minuten ein PHP-Skript aus und schreiben Sie die Ausgabe in eine Datei: Führen Sie täglich, stündlich und stündlich von 8.00 bis 16.00 Uhr ein Skript aus: Führen Sie am ersten Montag eines jeden Monats um 7 Uhr ein Skript aus Führen Sie das a-Skript am 1. und 15. eines jeden Monats um 21:15 Uhr aus: Sie haben gelernt, wie Sie Cron-Jobs erstellen und Aufgaben zu einem bestimmten Datum und einer bestimmten Uhrzeit planen. Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.
* * * * * command(s)
* * * * * command(s)
Vordefinierte Makros
@yearly
(oder
@annually
) - Führen Sie die angegebene Aufgabe einmal im Jahr um Mitternacht (12:00 Uhr) am 1. Januar aus. Entspricht
0 0 1 1 *
.
@monthly
- Führen Sie die angegebene Aufgabe einmal im Monat um Mitternacht am ersten Tag des Monats aus. Entspricht
0 0 1 * *
.
@weekly
- Führen Sie die angegebene Aufgabe einmal pro Woche am Sonntag um Mitternacht aus. Entspricht
0 0 * * 0
.
@daily
- Führen Sie die angegebene Aufgabe einmal täglich um Mitternacht aus. Entspricht
0 0 * * *
.
@hourly
- Führen Sie die angegebene Aufgabe einmal pro Stunde zu Beginn der Stunde aus. Entspricht
0 * * * *
.
@reboot
-
@reboot
die angegebene Task beim Systemstart (Startzeit) aus.Linux Crontab-Befehl
crontab -e
- Bearbeiten Sie die crontab-Datei oder erstellen Sie eine, falls diese noch nicht vorhanden ist.
crontab -l
- Zeigt den Inhalt der crontab-Datei an.
crontab -r
- Entfernt Ihre aktuelle crontab-Datei.
crontab -i
- Entfernen Sie Ihre aktuelle crontab-Datei mit einer Eingabeaufforderung, bevor Sie sie entfernen.
crontab -u
VISUAL
oder
EDITOR
angegebenen Editor.
Crontab-Variablen
PATH=/usr/bin:/bin
. Befindet sich der aufgerufene Befehl im von cron angegebenen Pfad, können Sie entweder den absoluten Pfad zum Befehl verwenden oder die Variable cron
$PATH
ändern. Sie können
:$PATH
nicht implizit anhängen, wie Sie es mit einem normalen Skript tun würden. Die Standard-Shell ist auf
/bin/sh
. Sie können eine andere Shell festlegen, indem Sie die Variable
SHELL
ändern.
SHELL
ruft den Befehl aus dem
SHELL
des Benutzers auf. Die Variable
HOME
kann durch Einstellungen in der Crontab überschrieben werden. Die E-Mail-Benachrichtigung wird an den Eigentümer der Crontab gesendet. Um das Standardverhalten zu überschreiben, können Sie die Umgebungsvariable
MAILTO
mit einer Liste (durch Kommas getrennt) aller E-Mail-Adressen verwenden, an die Sie die E-Mail-Benachrichtigungen
MAILTO
möchten. Wenn
MAILTO
definiert, aber leer ist (
MAILTO=""
), wird keine Mail gesendet.Crontab-Einschränkungen
/etc/cron.deny
und
/etc/cron.allow
steuern, welche Benutzer Zugriff auf den Befehl
crontab
. Die Dateien bestehen aus einer Liste von Benutzernamen, einem Benutzernamen pro Zeile.
/etc/cron.deny
vorhanden und leer.
/etc/cron.deny
bedeutet, dass alle Benutzer den Befehl crontab verwenden können. Wenn Sie einem bestimmten Benutzer den Zugriff auf die crontab-Befehle verweigern möchten, fügen Sie dieser Datei den Benutzernamen hinzu.
/etc/cron.allow
vorhanden ist, können nur die in dieser Datei aufgeführten Benutzer den Befehl
crontab
.
crontab
.Cron Jobs Beispiele
0 15 * * 1-5 command
dev null
. Nur der Standardfehler wird an die angegebene E-Mail-Adresse gesendet:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
zwischen den Befehlen):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
MAILTO
Variablen für
HOME
,
PATH
,
SHELL
und
MAILTO
und führen Sie jede Minute einen Befehl aus.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Fazit
Peru mit neuem OLPC Laptop mit Windows
Peru wird das erste Land sein, das jemals eine Testversion von OLPC-Laptops unter Windows getestet hat XP.
Nutzer mit geringem Einkommen Locken mit IPhone
US-Verbraucher mit niedrigeren Einkommen strömen laut dem Forschungsunternehmen ComScore Mobile auf das iPhone von Apple.
Der Math-Eingabebereich verwendet den in Windows 7 integrierten mathematischen Erkenner, um handschriftliche mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden. Der Math-Eingabebereich ist für die Verwendung mit einem Tablet-Stift auf einem Tablet PC vorgesehen, Sie können ihn jedoch mit jedem Eingabegerät wie einem Touchscreen oder sogar einer Maus verwenden.
Der Math-Eingabebereich verwendet den in Windows integrierten Mathematik-Erkenner 7 um handgeschriebene mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden.







