heim - Einrichten des Routers
Cron – führt Benutzerprogramme zu einem bestimmten Zeitpunkt aus. Cron-Einstellungen: Funktionen, Schritt-für-Schritt-Anleitungen und Überprüfungen des Cron-Zeitplans

(Geplante Aufgaben) wird verwendet, um die Ausführung von Befehlen nach einem Zeitplan oder zu einem genau festgelegten Zeitpunkt zu konfigurieren. Mit Hilfe CronTab Sie können einen bestimmten Zeitpunkt festlegen und der von Ihnen angegebene Befehl wird genau zu diesem Zeitpunkt ausgeführt. Konfigurieren CronTab Es ist möglich, dass die Aufgabe jeweils einmal ausgeführt wird Monat, Tag, Stunde Und jede Minute oder zum Beispiel, alle 10 Minuten. Sie können auch kombinieren, zum Beispiel müssen Sie die Aufgabe in den ersten 2 Stunden einmal pro Stunde ausführen und sie dann in den nächsten 2 Stunden nicht ausführen.

Zu den Annehmlichkeiten gehört auch die Möglichkeit, die Ergebnisse der erledigten Aufgaben per E-Mail zu versenden. Klicken Sie dazu auf die entsprechende Aufschrift und geben Sie Ihre E-Mail-Adresse ein.

Aufgabenmeister

Erste Bekanntschaft mit Cron Für uns beginnt es mit der Entdeckung Questmeister. Mithilfe des Assistenten können Sie die Ausführungszeit von Skripten ohne ernsthafte Administrationskenntnisse konfigurieren, indem Sie einfach aus den Dropdown-Listen auswählen bestimmte Kombination. Sie müssen auch den Pfad zum Skript oder Befehl eingeben, der ausgeführt werden soll Cron.

Sehen wir uns ein Beispiel für die Ausführung eines in der Sprache geschriebenen Skripts an PERL, das gestartet werden muss alle 5 Minuten.

Nachdem Sie auf die Schaltfläche unter dem Hauptfenster geklickt haben Cron wird auftauchen neuer Eintrag mit Ihrer ersten Konfiguration. Die Anzahl solcher Einträge ist unbegrenzt.

Jetzt haben wir die erste Aufgabe, die wir können anmachen/ausschalten, ändern oder löschen Verwenden Sie die Schaltflächen rechts gegenüber jeder Aufgabe:

Aufgabe aktivieren/deaktivieren;
- die Aufgabe ändern;
- Löschen Sie die Aufgabe.

Manuelle Einrichtung von CronTab.

Auch in der Rubrik gibt es manuelle Einstellung, mit dem Sie die Startzeit des Skripts auf die übliche Weise konfigurieren können, für diejenigen, die damit vertraut sind Cron.

Zeitintervall

Minuten können von sein 0 Vor 59
Stunden können von sein 0 Vor 23
Der Tag des Monats kann von sein 1 Vor 31
Einen Monat vielleicht 1 Vor 12
Der Wochentag kann von sein 0 Vor 7 , wobei 0 und 7 Sonntag sind

Konfigurierbar CronTab Aufgaben nicht nur zu einem bestimmten Zeitpunkt auszuführen
Zeit, aber auch jede Minute, stündlich, täglich, wöchentlich oder monatlich,
mit einer Kombination */X

Beispiele

*/5 * * * * – Führen Sie den Befehl alle fünf Minuten aus
0 */3 * * * – alle drei Stunden ausgeführt
0 12-16 * * * – Führen Sie den Befehl stündlich von 12 bis 16 Uhr aus (um 12, 13, 14, 15 und 16 Uhr).
0 12,16,18 * * * – Führen Sie den Befehl stündlich um 12, 16 und 18 Uhr aus

*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php- Ausführen des PHP-Skripts test.php jede Minute
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl- Stündliches Ausführen des Perl-Skripts test.pl

Team

Sie müssen den Pfad zum Skript von Ihrem Home-Verzeichnis aus festlegen
Zum Beispiel: public_html/cgi-bin/script.pl
Das System ersetzt das Symbol selbst ~/ (Diese Kombination ersetzt den vollständigen Pfad)
Es wird sich herausstellen: ~/public_html/cgi-bin/script.pl
Wenn Sie das Symbol am Ende des Pfades platzieren & (kaufmännisches Und), dann wird das Skript im Hintergrund ausgeführt.
Das Setzen dieses Symbols ist optional.

In unseren Materialien gewidmet Ubuntu-Server Von Zeit zu Zeit wird die Frage aufgeworfen, ob bestimmte Aufgaben nach einem Zeitplan ausgeführt werden sollen. Um nicht jedes Mal das Gleiche zu erklären, haben wir uns entschieden, dieses Material zu erstellen, das helfen soll Systemadministratoren Beherrschen und nutzen Sie den Taskplaner unter Linux effektiv.

In Ubuntu Server wird es als Aufgabenplaner verwendet cron- Scheduler mit Schnittstelle Befehlszeile. Es ist ein wichtiger Teil des Systems und beginnt sofort nach der Installation zu funktionieren und führt verschiedene Systemaufgaben aus. Unser Ziel ist es, es uns zur Verfügung zu stellen, zumal es nicht so schwierig ist, wie es scheint.

Es gibt zwei Arten von Zeitplänen cron: Benutzer und System. Sie unterscheiden sich darin, dass die erste von Benutzern erstellt und unter Berücksichtigung der Benutzerrechte ausgeführt wird, die zweite für Verwaltungs- oder Systemzwecke verwendet wird und im Namen eines beliebigen Benutzers gestartet werden kann.

Um einen benutzerdefinierten Zeitplan zu erstellen oder zu ändern, geben Sie den folgenden Befehl ein:

Crontab -e

Wenn Sie es zum ersten Mal starten, werden Sie vom Dienstprogramm aufgefordert, einen Editor auszuwählen. Wir empfehlen die Auswahl mcedit(erfordert die Installation von MC) oder einen anderen Editor, mit dem Sie vertraut sind.

Das Format der Einteilungen ist:

Befehl Minute Stunde Tag Monat Tag_der_Woche

  • Minute- Zeit in Minuten von 0 bis 59
  • Stunde- von 0 bis 23
  • Tag- Tag des Monats vom 1. bis 31
  • Monat- von 1 bis 12 oder Buchstabenbezeichnungen Jan. - Dez
  • Wochentag- von 0 bis 18 Uhr (0 - Sonntag) oder Sa - So
  • Team- eine Zeichenfolge im Format des Befehlsinterpreters, der ausgeführt wird, in der Schreibweise: Team1 && Team2 um mehrere Befehle hintereinander auszuführen.

Die Werte von Minuten, Stunden, Tagen können wie folgt angegeben werden:

  • Bedeutung– eine Zahl, die ein Datum oder eine Uhrzeit angibt, ein Platzhalter ist zulässig * Ermöglicht den gesamten Wertebereich
  • Mehrere Werte- Es ist erlaubt, mehrere durch Kommas getrennte Werte anzugeben, zum Beispiel 2,14,22
  • Wertebereich- mit einem Bindestrich angegeben, zum Beispiel 2-10
  • Wertschritt- angegeben durch einen Bruch, dessen Nenner ein Schritt ist, zum Beispiel */3 - jeder dritte Wert 0, 3, 6, 9 usw. Der Zähler muss ein Wertebereich oder ein Sternchen sein.

Betrachten Sie den folgenden Beispieleintrag:

0 8-19/2 * * 1 /home/ivanov/test

Das bedeutet, dass Sie montags jede zweite Stunde von 8 bis 19 Uhr (8, 10, 12, 14, 16) das Testskript in Ivanovs Home-Verzeichnis ausführen.

Wir möchten Sie sofort vor einem häufigen Fehler warnen: Bei der Angabe der periodischen Ausführung müssen alle Termine explizit angegeben werden, das Sternchen weist auf den gesamten Wertebereich und nicht auf deren Fehlen hin. Wenn Sie beispielsweise stündlich von 10 bis 15 Uhr ein bestimmtes Skript ausführen müssen, wäre dies falsch:

* 10-15 * * * /home/ivanov/test

In dieser Zeile wird das Skript ausgeführt jede Minute im Bereich von 10 bis 15 Stunden. Es wird richtig sein:

0 10-15 * * * /home/ivanov/test

Dieser Eintrag ermöglicht die Ausführung des Skripts zu Beginn jeder Stunde des angegebenen Bereichs.

Zusätzlich zum Datum können Sie eine Reihe spezieller Zeichenfolgen verwenden:

  • @reboot- Befehl beim Neustart ausführen
  • @jährlich oder @jährlich- am 1. Januar ausführen, ähnlich dem Eintrag: „ 0 0 1 1 * "
  • @monatlich- am 1. eines jeden Monats durchführen, ähnlich wie „ 0 0 1 * * "
  • @wöchentlich- Jeden Sonntag auftreten, gleichbedeutend mit „ 0 0 * * 0 "
  • @täglich oder @Mitternacht- jeden Tag um Mitternacht" 0 0 * * * "
  • @stündlich- einmal pro Stunde, " 0 * * * * "

Für die tägliche Ausführung unseres Skripts jede Mitternacht können Sie Folgendes schreiben:

@Mitternacht /home/ivanov/test

Nachdem Sie den Zeitplan erstellt haben, speichern Sie die Datei und verlassen Sie den Editor. Der benutzerdefinierte Zeitplan wird in gespeichert /var/spool/cron/crontabs unter dem Namen des aktuellen Benutzers.

Für System- und Verwaltungsaufgaben steht eine Datei zur Verfügung /etc/crontab Die Syntax der darin enthaltenen Einträge zeichnet sich durch das Vorhandensein eines zusätzlichen Werts aus – des Benutzers, in dessen Namen die Aufgabe gestartet wird:

Minute Stunde Tag Monat day_of_week Benutzerbefehl

Ein Beispiel für einen solchen Eintrag:

0 19 * * 1-5 root /etc/backup

Demnach wird von Montag bis Freitag um 19:00 Uhr das Drehbuch veröffentlicht /etc/backup im Namen des Benutzers Wurzel.

Diese Datei enthält auch Systemzeitpläne, daher sollte die Bearbeitung mit Vorsicht erfolgen. Alle System- und Verwaltungsaufgaben sollten dort platziert werden.

Wie wir sehen cron Es ist recht einfach zu verwenden, bietet aber gleichzeitig umfangreiche Möglichkeiten zum Einrichten von Zeitplänen in Ubuntu Server. Wir hoffen, dass dieser Artikel Administratoren dabei hilft, dieses Tool zu beherrschen.

MIN STUNDE DOM MON DOW CMD

Tabelle: Crontab-Felder und gültige Bereiche (Linux Crontab-Syntax)

1. Aufgaben für eine bestimmte Zeit planen

Die Grundlage der Verwendung von Cron besteht darin, Aufgaben zu einem bestimmten Zeitpunkt auszuführen, wie unten gezeigt. Dadurch wird am 10. Juni um 8:30 Uhr ein vollständiges Backup-Skript ausgeführt.

Bitte beachten Sie, dass das Zeitfeld ein 24-Stunden-Format verwendet, also 8 Uhr morgens 20 Uhr und 20 Uhr 20 Stunden.

30 08 10 06 * /home/developer/full-backup

  • 30. – 30. Minute
  • 08 – 08 Uhr
  • 10 – 10. Tag
  • * - Jeder Tag der Woche

2. Planen Sie Aufgaben so ein, dass sie häufiger erledigt werden (z. B. zweimal täglich).

Das folgende Skript verwendet zusätzliche Sicherung jeden Tag zweimal täglich. In diesem Beispiel wird täglich um 11:00 und 16:00 Uhr eine inkrementelle Sicherung durchgeführt. Durch Kommas getrennte Werte im Feld geben an, dass der Befehl zu jedem angegebenen Zeitpunkt ausgeführt werden soll.

00 11.16 * * * /home/developer/bin/incremental-backup

00 – 0. Minute (Beginn der Stunde) 11, 16 – 11 und 16 Stunden * – jeden Tag * – jeden Monat * – jeden Tag der Woche

3. Planen Sie die Arbeit für einen bestimmten Zeitraum (z. B. nur an Wochentagen).

Wenn Sie möchten, dass Routinen stündlich in einem bestimmten Zeitintervall ausgeführt werden, verwenden Sie Folgendes.

Cron-Routine für jeden Tag während der Geschäftszeiten

In diesem Beispiel wird der Status der Datenbank jeden Tag (einschließlich Wochenenden) während der Geschäftszeiten von 9.00 bis 18.00 Uhr überprüft.

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0. Minute (Beginn der Stunde) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (Stunden) * - jeden Tag * - jeden Monat * - jeden Tag der Woche

Cron-Routine für jeden Arbeitstag während der Arbeitszeit

In diesem Beispiel wird der Status der Datenbank an jedem Wochentag (außer Samstag und Sonntag) von 9.00 bis 18.00 Uhr überprüft.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0. Minute (Beginn der Stunde) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (Stunden) * - jeden Tag * - jeden Monat 1-5 - Montag, Dienstag, Mittwoch, Donnerstag und Freitag (jede Woche)

4. Wie werden Crontab-Einträge angezeigt?

Zeigen Sie die aktuellen Crontab-Dateien des Benutzers an.

Um Ihre crontab-l-Dateien von oben anzuzeigen Konto Unix, gehen Sie wie folgt vor.

Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Root-Crontab-Einträge anzeigen

Melden Sie sich als Root-Benutzer (su – root) an und führen Sie crontab-l wie unten gezeigt aus.

Root@dev-db# crontab -l kein Crontab für Root

Um die Dateien anderer Benutzer anzuzeigen, melden Sie sich als Root an und verwenden Sie -u (Benutzername) -l wie unten gezeigt.

Root@dev-db# crontab -u Benutzername -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Wie bearbeite ich Crontab-Einträge?

Bearbeiten aktueller Cron-Einträge des Benutzers.

Um Einträge zu bearbeiten, verwenden Sie cronab -e wie unten gezeigt. Standardmäßig werden die aktuellen Crontab-Einträge des Benutzers bearbeitet.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab .XXXXyjWkHw" 2L, 83C

Wenn Sie die Datei speichern, wird die Crontab gespeichert und die folgende Meldung angezeigt, die Ihnen mitteilt, dass die Crontab erfolgreich geändert wurde.

~ "crontab.XXXXyjWkHw" 2L, 83C geschriebene Crontab: Installation einer neuen Crontab

Bearbeiten von Root-Crontab-Einträgen

Melden Sie sich als Root-Benutzer (su - root) an und führen Sie crontab -e wie unten gezeigt aus.

Root@dev-db# crontab -e

Bearbeiten der Crontab-Einträge eines anderen Benutzers

Um den Crontab-Eintrag einer anderen Person zu bearbeiten Linux-Benutzer, melden Sie sich als Root an und verwenden Sie -u (Benutzername) -e wie unten gezeigt.

Root@dev-db# crontab -u Benutzername -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ „/tmp/crontab.XXXXyjWkHw“ 2L, 83C

6. Cron-Ausführung jede Minute

Im Idealfall müssen Sie möglicherweise nicht jede Minute einen Cron-Lauf einplanen. Aber das Verständnis dieses Beispiels wird Ihnen helfen, die anderen in diesem Artikel beschriebenen Beispiele zu verstehen.

Bash * * * * * CMD

* – bedeutet eine mögliche Einheit – also jede Minute jeder Stunde das ganze Jahr über. Außerdem ist die direkte Verwendung von * sinnvoller nützliche Funktion in den folgenden Beispielen.

Die Angabe */5 im Minutenfeld bedeutet alle 5 Minuten. Die Angabe von 0-10/2 im Minutenfeld bedeutet, dass die ersten 10 Minuten alle 2 Minuten erfolgen. Somit kann diese Konvention in allen 4 Bereichen verwendet werden.

7. Führen Sie alle 10 Minuten Cron-Tasks im Hintergrund aus

Verwenden Sie Folgendes, wenn Sie Ihren Speicherplatz alle 10 Minuten überprüfen möchten.

*/10 * * * * /home/ramesh/check-disk-space

Diese Aufgabe führt ein Jahr lang alle 10 Minuten den angegebenen Befehl zur Festplattenüberprüfung aus. Möglicherweise müssen Sie die Überprüfung jedoch nur während der Geschäftszeiten durchführen oder umgekehrt. Die obigen Beispiele zeigen, wie das geht.

Anstatt die Werte in den 5 Feldern anzugeben, können wir sie wie unten gezeigt mithilfe eines Schlüsselworts angeben.

Es gibt spezielle Bedingungen, bei denen Sie anstelle von 5 Feldern @ gefolgt von einem Schlüsselwort verwenden können – z. B. Neustart, Mitternacht, Jährlich, Stündlich.

Cron-Spezialschlüsselwörter und ihre Bedeutung

8. Planen Sie die Arbeit für die erste Minute jedes Jahres mit @yearly

Wenn Sie möchten, dass der Cronjob in den ersten Minuten eines jeden Jahres ausgeführt wird, können Sie das Schlüsselwort @yearly wie unten gezeigt verwenden. In diesem Fall führt das System eine jährliche Durchführung durch technischer Service, unter Verwendung des jährlichen Wartungsskripts um 00:00 Uhr am 1. Januar eines jeden Jahres.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Führen Sie jeden Monat Aufgaben mit dem Schlüsselwort @monthly aus

Es ähnelt @yearly oben. Der Befehl wird jedoch monatlich ausgeführt. Der Befehl führt die Sicherung am ersten Tag jedes Monats um 00:00 Uhr durch.

@monthly /home/ramesh/suse/bin/tape-backup

10. Führen Sie jeden Tag Aufgaben mit @daily aus

Durch die Verwendung des Schlüsselworts @daily wird eine tägliche Protokolldatei erstellt, um das Protokoll jeden Tag um 00:00 Uhr zu löschen.

@daily /home/developer/arch-linux/bin/cleanup-logs „Tag hat begonnen“

11. Wie führe ich den Linux-Befehl nach jedem Neustart mit @reboot aus?

Durch die Verwendung des Schlüsselworts @reboot wird der angegebene Befehl bei jedem Systemstart ausgeführt.

@rebootCMD

13. 12. Wie kann ich ausgehende Crontab-E-Mails mit dem Schlüsselwort MAIL deaktivieren/umleiten?

Standardmäßig sendet crontab die Ausgabe von Aufgaben an den Benutzer, der die Aufgabe installiert hat. Wenn Sie sie an einen anderen Benutzer umleiten möchten, fügen Sie die Variable MAIL in crontab hinzu oder aktualisieren Sie sie wie unten gezeigt.

Developer@dev-db$ crontab -l MAIL="developer" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Wenn Sie verhindern möchten, dass E-Mails überhaupt gesendet werden, d. h. das Senden von Crontab-Ausgabedateien beenden möchten, fügen Sie die Variable MAIL in Crontab hinzu oder aktualisieren Sie sie wie unten gezeigt.

13. So führen Sie Linux-Cron-Jobs jede Sekunde mit Crontab aus

Sie können cron nicht so einstellen, dass es jede Sekunde ausgeführt wird. Weil die Mindesteinheit für die Cron-Ausführung eine Minute beträgt. In einem normalen Szenario ist es nicht erforderlich, jede Sekunde eine Cron-Ausführung auszuführen.

14. Angabe der PATH-Variablen in Crontab

In allen obigen Beispielen haben wir einen absoluten Pfad angegeben Linux-Befehle oder Shell-Skript, das ausgeführt werden soll.

Wenn Sie beispielsweise nur tape-backup angeben möchten, anstatt /home/developer/tape-backup anzugeben, fügen Sie den Pfad /home/developer hinzu PATH-Variable in crontab wie unten gezeigt.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yearly annual-maintenance */10 * * * * check-disk-space

15. Crontab aus einer Cron-Datei installieren

Anstatt die Crontab-Datei direkt zu bearbeiten, können Sie alle Einträge zur Cron-Datei hinzufügen. Wenn die Datei diese Einträge enthält, können Sie sie wie unten gezeigt in Cron sichern oder installieren.

Hinweis: Dadurch wird eine cron-file.txt-Datei in Ihrer Crontab erstellt, die vorherige Cron-Einträge entfernt. Seien Sie also bitte vorsichtig, wenn Sie Cron-Einträge aus cron-file.txt laden:

Developer@dev-db$ crontab -l kein Crontab für Entwickler $ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space Developer@dev -db$ crontab cron-file.txt Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Im System Linux Das automatische Starten von Jobs erfolgt durch den Crond-Daemon und die Planung für automatischer Start Nicht nur der Systemadministrator, sondern auch Benutzer können Aufgaben ausführen.

Wie funktioniert Crond?

Das Prinzip des Crond-Daemons ist einfach. Nach dem Start (normalerweise beim Systemstart) wacht der Daemon jede Minute auf und prüft, ob für diese Minute die Ausführung von Programmen geplant ist. Wenn solche Programme gefunden werden, führt der Daemon sie aus und sendet E-Mail-Nachrichten an Benutzer, die ihre Ausführung geplant haben.

Aufgaben planen

Einen Zeitplan zu erstellen ist keine schwierige Aufgabe. Der Zeitplan befindet sich in einer separaten Crontab-Datei. Jede Zeile der Datei enthält eine Aufgabe, die zu einem bestimmten Zeitpunkt ausgeführt werden muss.

Crontab-Dateiformat

Der Zeit-Datum-Teil besteht aus fünf durch Leerzeichen getrennten numerischen Feldern, die den Zeitpunkt definieren, zu dem der Job ausgeführt wird:

Um das Ausfüllen dieser Felder zu erleichtern, wurden die folgenden Regeln eingeführt:

  • Sie können Werte als numerische Intervalle angeben. Beispielsweise bedeutet das Intervall 1-3 im Stundenfeld 1.00, 2.00 und 3.00 Mitternacht, 2-4 im Wochentagfeld - Dienstag, Mittwoch oder Donnerstag.
  • Intervalle können in Schritten größer als eins eingestellt werden. Um beispielsweise jede zweite Stunde ab Mitternacht anzuzeigen, würden Sie das Intervall auf 0-23 in Zweierschritten, getrennt durch einen Schrägstrich, einstellen: 0-23/2
  • Ein Sternchen (*) gibt den gesamten Bereich der Feldwerte an – vom Minimum bis zum Maximum. Im Feld „Tag des Monats“ bedeutet das Sternchen beispielsweise das Intervall 0-31, im Feld „Wochentag“ bedeutet es das Intervall 0-7
  • Der Tag der Woche oder des Monats kann durch die ersten drei Buchstaben seines (englischen) Namens angegeben werden

Beispiele für Uhrzeit und Datum

Einige Beispiele für das Ausfüllen von Zeit-Datums-Feldern:

0 1 * * * Führen Sie die Aufgabe täglich um 1.00 Uhr Mitternacht aus. 30 14 * * 0 Führen Sie die Aufgabe sonntags um 14.30 Uhr aus. 0 23-7/2.8 * * * Führen Sie die Aufgabe alle 2 Stunden von 23.00 bis 7.00 Uhr und um 8.00 Uhr aus. 0 12 * 1 Mon. Führen Sie den Job jeden Montag im Januar eines jeden Jahres um 12.00 Uhr aus. 0 12 2. Februar * Führen Sie den Job jedes Jahr um 12.00 Uhr im Februar aus

Befehlsfeld

Das Befehlsfeld ist durch ein oder mehrere Leerzeichen von den Datums-/Uhrzeitfeldern getrennt und reicht bis zum Ende der Zeile. Befehle werden von der /bin/sh-Shell verarbeitet.

Der folgende Eintrag in der Crontab-Datei fordert beispielsweise die tägliche Ausführung von /usr/sbin/backup um 1:00 Uhr:

0 1 * * * /usr/sbin/backup

Einige Befehle (z. B. E-Mail) erfordern die Eingabe über das Standardeingabegerät. Dies wird mit einem Prozentzeichen (%) angegeben. Das erste derartige Zeichen kennzeichnet den Beginn der Standardeingabe, jedes weitere Zeichen kennzeichnet einen Zeilenwechsel.

Bearbeiten der Crontab-Datei

Die Crontab-Datei wird mit dem Befehl crontab -e bearbeitet. Zwei Vorgehensweisen sind möglich:

  • Erstellen einer neuen Datei mit allen Einträgen, die in die Crontab-Datei aufgenommen werden sollen, und Schreiben dieser Datei unter diesem Namen mit dem Befehl crontab auf die Festplatte;
  • Bearbeiten Sie die Datei direkt mit dem Befehl crontab -e.

Aus Datei schreiben

Um den Inhalt einer Crontab-Datei aus einer anderen Datei zu schreiben, müssen Sie diese andere Datei erstellen (auf die übliche Weise). Texteditor) mit allen Einträgen, aus denen die Crontab-Datei bestehen soll. Dies könnte beispielsweise der folgende Eintrag sein:

0 1 * * * /usr/sbin/backup

Der erstellten Datei sollte ein passender Name gegeben werden, z. B. Cron-Jobs. Sobald die angegebene Datei erstellt wurde, muss ihr Inhalt mit dem folgenden Befehl in die Crontab-Datei geschrieben werden:

~$ crontab Cronjobs

Der Inhalt der Cronjobs-Datei ersetzt vollständig den Inhalt der Crontab-Datei angegebenen Benutzer. Mit dieser Methode kann jeder Benutzer seine Crontab-Datei bearbeiten. Der Superuser verfügt über besondere Rechte zum Bearbeiten der Crontab-Dateien anderer Benutzer. Das Bearbeiten der Datei einer anderen Person wird durch das Flag -u angezeigt. Zum Beispiel per Befehl:

~# crontab -u oleg Cronjobs

Die Cronjobs-Datei wird als Crontab-Datei des Benutzers Oleg geschrieben.

Bearbeiten Sie die Crontab-Datei direkt

Mit dem Befehl crontab können Sie den mehrstufigen Vorgang zum Erstellen einer separaten Datei vermeiden. Wenn Sie den Befehl crontab mit der Option -e ausführen, können Sie die Crontab-Datei direkt bearbeiten.

Standardmäßig wird die Crontab-Datei mit dem Befehl crontab mit der Option -e in den Editor geladen. Editor Vi- ein leistungsstarkes, wenn auch komplexes Tool, das bei erfahrenen Benutzern beliebt ist Unix. Jemand, der einen anderen Editor bevorzugt, z.B. Xedit, kann den entsprechenden Wert einstellen Umgebungsvariable EDITOR:

~$ export EDITOR=xedit

Geben Sie anschließend den Befehl ein

bewirkt, dass die Crontab-Datei im angegebenen Editor geöffnet wird.

Ähnlich zu regelmäßiger Benutzer Während der Superuser seine eigene Crontab-Datei bearbeiten kann, kann er die Crontab-Dateien anderer Benutzer bearbeiten. Verwenden Sie dazu den Befehl:

~# crontab -u Benutzername -e

Anzeigen der Crontab-Datei

Geben Sie den folgenden Befehl ein, um den Inhalt der Crontab-Datei anzuzeigen:

Der Superuser kann die Crontab-Dateien anderer Benutzer anzeigen:

~# crontab -u Benutzername -l

Entfernen der Crontab-Datei

Um den Inhalt seiner Crontab-Datei zu löschen, gibt der Benutzer den folgenden Befehl ein:

Der Superuser kann die Crontab-Dateien anderer Benutzer löschen.

In Unix-ähnlichen Betriebssystemen ist es möglich, Benutzerprogramme zu einem vom Benutzer festgelegten Zeitpunkt auszuführen. Hierzu wird der Cron-Task-Scheduler verwendet, der Anweisungen von Benutzern entgegennimmt und beliebige Aufgaben gemäß den empfangenen Skripten ausführt. Unsere Kunden können diese Funktion nutzen, um regelmäßige Aufgaben auszuführen.

So konfigurieren Sie Cron über das ISPmanager 5-Panel

Richten Sie Cron-Skripte über die Systemsteuerung im Abschnitt ein System → Planer

Um neue Aufgaben hinzuzufügen, klicken Sie auf "Erstellen". Der interaktive Cron-Skript-Editor wird geöffnet:


Auf dem Feld "Team" Geben Sie den vollständigen Pfad zum Skript oder Befehl an, der ausgeführt werden soll (bei Systembefehlen kann der vollständige Pfad nicht angegeben werden). Der vollständige Pfad zur Datei script.pl im Stammverzeichnis der Site sieht beispielsweise so aus:

/var/www/u12345/data/www/script.pl

Stellen Sie sicher, dass die Datei, die Sie ausführen möchten, über Lese- und Ausführungsberechtigungen (r+x) für den Eigentümer der Datei verfügt. Sie können die Berechtigungen mit dem folgenden Befehl auf die von Ihnen benötigten Berechtigungen ändern:

Chmod 750 script.pl

Auf dem Feld "Beschreibung" Sie können sich eine Notiz machen, damit Sie nicht vergessen, was dieses Skript tut

Base- Sie wählen eine der aufgeführten Optionen in der Zeile aus "Laufen": stündlich, täglich, wöchentlich, monatlich, jährlich, beim Start.

Experte- flexible Einstellung der Starthäufigkeit: Minuten, Stunden, Tage von Monaten, Monate, Wochentage (0 - Sonntag). Eingabeformat: * – alle Minuten; */n – alle n Minuten; n – ab Beginn der Minute n; a,b,c-e – vom Beginn der Minuten a,b,c,d,e

Beispiele Grundmodus Einstellungen für die Startfrequenz:



Beispiele für den Expertenmodus zum Einstellen der Startfrequenz:

  • Führen Sie die Aufgabe einmal pro Stunde bei 05 Minuten aus

  • Erledige die Aufgabe montags um 1:15 Uhr

  • Schließe die Aufgabe jedes Jahr am 5. April um 0 Stunden und 1 Minute ab

Wenn alle Felder ausgefüllt sind (außer "Beschreibung", es ist optional), klicken Sie "OK".

Versenden von Berichten per E-Mail über die Skriptausführung

Um Benachrichtigungen einzurichten, geben Sie die E-Mail-Adresse an, an die Benachrichtigungen über die Ausführung des Skripts gesendet werden. Gehen Sie dazu zum Abschnitt "Planer"


Klicken Sie auf die Schaltfläche "Einstellungen" und auf dem Feld "E-Mail-Adresse" Geben Sie die E-Mail-Adresse an, an die Benachrichtigungen über die Skriptausführung gesendet werden sollen.


Stellen Sie in den Skripteinstellungen sicher, dass das Kästchen neben „Versenden Sie den Bericht nicht per E-Mail“.

So richten Sie Cron über SSH ein

Die Konfiguration von Cron-Skripten erfolgt über die Unix-Shell. Bestimmen Sie, welche Programme gestartet werden müssen, und ermitteln Sie die vollständigen Pfade zu ihnen auf der Serverfestplatte. Navigieren Sie dazu mit dem Befehl cd zu dem Verzeichnis, in dem sich das von Ihnen ausgeführte Programm befindet, und ermitteln Sie mit dem Befehl pwd den vollständigen Pfad zu diesem Verzeichnis. Der Pfad könnte so aussehen: /home/u12345/scripts/script.pl.

Stellen Sie sicher, dass die Datei über Lese- und Ausführungsberechtigungen (r+x) für den Benutzer verfügt, als den Sie das Skript ausführen. Mit dem Befehl können Sie die Berechtigungen auf die von Ihnen benötigten Berechtigungen ändern chmod 750 script.pl

750 – volle Rechte für den Dateieigentümer, für die Gruppe – Lesen und Ausführen, für andere – der Zugriff wird verweigert.

Führen Sie den Befehl aus crontab -e – Der Planer ändert den Plan des Benutzers, in dessen Namen Sie cron ausführen. Beim ersten Start werden Sie aufgefordert, einen Texteditor auszuwählen. Wählen Sie einen Editor, mit dem Sie bereits vertraut sind. Als Beispiel betrachten wir den vi-Texteditor. Nach Eingabe des Befehls befinden Sie sich im vi(n)-Texteditor, wo Sie den Text des Cron-Skripts eingeben können.

Eine kurze Referenz zum vi-Editor:

  • Um Text einzufügen, drücken Sie i und geben Sie dann Text ein
  • Um Zeichen zu löschen, drücken Sie ESC und geben Sie dann x ein
  • Um vi zu beenden, ohne Ihre Änderungen zu speichern, drücken Sie ESC und geben Sie dann Folgendes ein:q!
  • Zum Speichern und Beenden drücken Sie ESC und geben Sie dann Folgendes ein:wq

Cron-Jobs werden einzeln pro Zeile geschrieben. Drücken Sie nach jeder Zeile, auch nach der letzten oder nur einer, unbedingt die Eingabetaste, sonst funktionieren die Aufgaben nicht.

Die Aufgabe sieht aus wie eine Zeichenfolge. Am Anfang stehen fünf durch Leerzeichen getrennte Pflichtfelder zur Angabe der Häufigkeit des Auftrags. Der folgende Befehl muss ausgeführt werden:

Feld1 Feld2 Feld3 Feld4 Feld5 Team

Werte der ersten fünf Felder:

  • Minuten – eine Zahl von 0 bis 59
  • Stunden – eine Zahl von 0 bis 23
  • Tag des Monats – eine Zahl von 1 bis 31
  • Zahl des Monats im Jahr – eine Zahl von 1 bis 12
  • Wochentag – eine Zahl von 0 bis 7 (0-So, 1-Mo, 2-Di, 3-Mi, 4-Do, 5-Fr, 6-Sa, 7-Sonn)

Für jeden spezifischen Parameter können Sie mehrere durch Kommas getrennte Werte angeben. Wenn Sie beispielsweise 1,4,22 in das Feld „Stunden“ schreiben, wird die Aufgabe um 1 Uhr, 4 Uhr und 22 Uhr ausgeführt. Sie können das Intervall einstellen – 4-9 bedeutet, dass das Programm jede Stunde von 4 bis einschließlich 9 Stunden gestartet werden muss.

Symbol «*» bedeutet „alle möglichen Werte“. Stern «*» im Feld „Stunden“ bedeutet „jede Stunde ausführen“. Symbol «/» dient dazu, die zusätzliche Häufigkeit der Aufgabe anzuzeigen. Zum Beispiel, "*/3" im Feld „Stunden“ bedeutet alle drei Stunden. Wenn die Felder „Tag des Monats“ und „Tag der Woche“ definiert sind (ungleich *), dann wird eine solche Aufgabe an jedem angegebenen Wochentag ausgeführt, unabhängig vom Tag des Monats.

13 13 10 * 5 /home/u12345/script.pl

Ein solcher Befehl wird jeden Freitag und jeden 10. des Monats um 13:13 Uhr ausgeführt, auch wenn der 10. nicht mit einem Freitag zusammenfällt.

Mit Cron können Sie Skripte ausführen, wenn das System startet. Geben Sie am Anfang des Skripts @reboot anstelle der Ausführungshäufigkeit an:

@reboot /home/u12345/script.pl

So sieht ein einfaches Cron-Skript aus:

0 */3 * * 2.5 /home/u12345/script.pl

Das Skript /home/u12345/script.pl wird am Dienstag und Freitag automatisch alle drei Stunden ausgeführt. Geben Sie ein solches Skript in den vi-Editor ein, beenden Sie ihn und speichern Sie die Bearbeitungsergebnisse. Die Aufgabe wird in der angegebenen Häufigkeit erledigt, sofern Sie keine Fehler gemacht haben.

Cron meldet Fehler im Skript:

/tmp/crontab.xxxxxxx: 1 Zeile, 9 Zeichen crontab: Neues Crontab installieren „/tmp/crontab.xxxxxxx“:1: fehlerhafte Minute crontab: Fehler in der Crontab-Datei, Installation nicht möglich. Möchten Sie die gleiche Bearbeitung noch einmal versuchen?

Mit dem Befehl crontab -l können Sie die Liste der bereits in cron installierten Skripte anzeigen:

Bash-2.05b$ crontab -l 0 */3 * * 2.5 /home/u12345/script.pl

Wenn Sie ein Programm einmal am Tag ausführen müssen, wählen Sie die Nachtzeit. Von 2 bis 8 Uhr ist die Belastung der Server minimal. Wenn ein Programm viele Ressourcen benötigt, wird es nachts schneller ausgeführt als tagsüber.

Beispiele für die Verwendung von cron

  • Führen Sie die Aufgabe einmal pro Stunde für 0 Minuten aus - 0 */1 * * * /home/u12345/script.pl
  • Führen Sie die Aufgabe alle drei Stunden bei 0 Minuten aus - 0 */3 * * * /home/u12345/script.pl
  • Erledige die Aufgabe montags um 1:15 Uhr - 15 1 * * 1 /home/u12345/script.pl
  • Schließe die Aufgabe jedes Jahr am 5. April um 0 Stunden und 1 Minute ab - 1 0 5 4 * /home/u12345/script.pl
  • Führen Sie die Aufgabe monatlich am 1. um 6:10 Uhr aus - 10 6 1 * * /home/u12345/script.pl

So führen Sie ein PHP-Skript nach einem Zeitplan aus

Skripte ausführen PHP-Sprache zum angegebenen Zeitpunkt mit der gewünschten Häufigkeit mithilfe des PHP-CLI-Interpreters. So könnte der Befehl zum Ausführen des Skripts script.php aussehen – /usr/bin/php -q $HOME/script.php> /dev/null 2>&1

Da nicht alle PHP-Programme ohne vorherige Modifikation über die SAPI-CLI laufen können, können Sie sie über wget ausführen:

/usr/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Geben Sie den Pfad zu den Dienstprogrammen vollständig vom Stammverzeichnis aus an Dateisystem. Wenn das Skript die Funktionen „require“ und „include“ verwendet, die relative Pfade angeben, rufen Sie am Anfang des ausgeführten Skripts die Funktion „chdir()“ auf, die das aktuelle Arbeitsverzeichnis festlegt. Oder verwenden Sie den integrierten cd-Befehl.

@reboot cd /home/u12345 && ./script.pl

So erhalten Sie Fehlermeldungen von Programmen, die von Cron ausgeführt werden

Sie können beim Ausführen von Programmen Fehlermeldungen erhalten, sodass Sie die Leistung regelmäßig ausgeführter Jobs vollständig überwachen können. Platzieren Sie dazu die folgende Zeile am Anfang des Cron-Skripts:

[email protected], wobei „[email protected]“ die Adresse ist Email, wo Benachrichtigungen eingehen. Um mehrere Adressen anzugeben, geben Sie diese durch Kommas getrennt ein.

Sie erhalten jedes Mal, wenn cron eine Aufgabe ausführt, eine E-Mail mit der Ausgabe der Skripte. Wenn Sie ein Skript schreiben, das die Zeile „Hello, world“ ausgibt, und es über cron ausführen, erhalten Sie jedes Mal, wenn cron ein solches Skript ausführt, eine E-Mail mit der Zeile „Hello, world“.

Wenn Sie den vom Skript ausgegebenen Text nicht benötigen, fügen Sie die Zeichen > /dev/null 2>&1 am Ende der Cron-Skriptzeile hinzu

Die vollständige Zeile für Cron sieht folgendermaßen aus:

0 1 * * * /usr/bin/php -q $HOME/script.php > /dev/null 2>&1

Überprüfen Sie die korrekte Syntax der Skripte, die Sie über Cron ausführen möchten. Skripte können Fehler enthalten und anders ausgeführt werden, wenn sie über einen Webserver ausgeführt werden als über Cron usw. Überprüfen Sie das Skript vor der Ausführung mit dem Befehl in der Unix-Shell:

/usr/bin/php -l script.php

Wenn das Skript keine Fehler enthält, wird die Meldung „Keine Syntaxfehler in script.php erkannt“ angezeigt.

So führen Sie ein Skript als Benutzer aus

Um die Systemsicherheit zu erhöhen, wird das Skript im Namen eines bestimmten Benutzers ausgeführt. Stellen Sie sicher, dass der Benutzer über Rechte zum Ausführen des Skripts verfügt. Platzieren Sie es vor dem Hauptteil des Skripts su -l Benutzername, von dem aus Sie das Skript ausführen möchten.

Um beispielsweise den TeamSpeak3-Server als Benutzer ts3server zu starten, verwenden Sie den folgenden Befehl:

Su -l ts3server ./ts3server_startscript.sh starten

Das Skript befindet sich im Home-Verzeichnis des Benutzers, wohin wir bei der Autorisierung automatisch wechseln.

Einschränkungen

Für Programme, die über Cron gestartet werden, gelten die gleichen Einschränkungen hinsichtlich der verbrauchten Ressourcen wie für Prozesse, die der Benutzer in der Unix-Shell startet. Wir sprechen über Einschränkungen bei der Ausführungszeit des Programms, der Menge des verfügbaren Speichers, Einschränkungen bei der Dateigröße usw.



 


Lesen:



Bewertung der besten kabellosen Kopfhörer

Bewertung der besten kabellosen Kopfhörer

Ist es möglich, universelle Ohren günstig zu kaufen? 3.000 Rubel – kann man für so viel Geld hochwertige Kopfhörer kaufen? Wie sich herausstellte, ja. Und Rede...

Die Hauptkamera eines Mobilgeräts befindet sich meist auf der Rückseite des Gehäuses und dient zum Aufnehmen von Fotos und Videos

Die Hauptkamera eines Mobilgeräts befindet sich meist auf der Rückseite des Gehäuses und dient zum Aufnehmen von Fotos und Videos

Eine aktualisierte Version des Tablets mit verbesserten Eigenschaften und hoher Autonomie. Acer-Smartphones werden selten besucht...

So wechseln Sie zu einem anderen Betreiber und behalten dabei Ihre Nummer

So wechseln Sie zu einem anderen Betreiber und behalten dabei Ihre Nummer

Das Gesetz zur Beibehaltung einer Telefonnummer beim Wechsel eines Teilnehmers zu einem anderen Mobilfunkanbieter ist in Russland am 1. Dezember in Kraft getreten. Es stellte sich jedoch heraus, dass...

Bewertung eines Phablets, teuer, aber sehr kompetent

Bewertung eines Phablets, teuer, aber sehr kompetent

Bewertung eines Phablets, teuer, aber sehr kompetent 20.03.2015 Ich bin der einzige Schuhmacher der Welt ohne Stiefel, ein Smartphone-Rezensent ohne eigenes Smartphone....

Feed-Bild RSS