noscript-Erweiterung. Die NoScript-Erweiterung ist für Chrome verfügbar geworden. Mit welchen Browsern funktioniert es

Cron- ein Daemon-Programm zum Ausführen von Aufgaben in bestimmte Zeit oder in bestimmten Abständen. Das Dienstprogramm crontab wird zum Bearbeiten von Jobs verwendet.

Auflistung

Sie können die Zeitplandatei nicht ändern, indem Sie sie einfach öffnen Texteditor. Verwenden Sie zum Bearbeiten den Befehl crontab -e.

Ein einfaches Beispiel für eine Zeitplandatei. Jede Stunde einen Screenshot machen:

SHELL =/ bin/ bash MAILTO =Benutzername 0 * * * * scrot

Grundeinstellungen

Auswahl einer Umgebung für ausführbare Aufgaben:

SHELL=/bin/bash

Name des Benutzers, an den die Nachricht über den Abschluss der Aufgabe gesendet wird:

MAILTO=Benutzername

Anstelle eines Namens können Sie auch eine E-Mail-Adresse verwenden:

MAILTO [E-Mail geschützt] beispiel.org

Optionale Einstellungen

Legen Sie das Benutzerverzeichnis fest:

HOME=

Legen Sie die Verzeichnisse der ausführbaren Dateien fest:

PATH=/ sbin:/ bin:/ usr/ sbin:/ usr/ bin

Wir schreiben die Anzeige vor, wenn das per cron gestartete Skript Grafiken verwenden soll:

ANZEIGE=:0.0

Wahl der Task-Ausführungszeit

Die Startzeit wird wie folgt dargestellt:

Minute Stunde day_of_month Monat day_of_week Befehl

Das Symbol "*" bedeutet - beliebiger Wert.

Die Mindestzeit beträgt 1 Minute. Dies liegt daran, dass cron jede Minute die Liste der Aufgaben durchsucht und sucht, welche ausgeführt werden müssen.

Zusätzliche Cron-Variablen

Verwalten mit crontab

Hinzufügen einer Zeitplandatei:

Crontab Scheduling_filename

Zeigen Sie den Inhalt der aktuellen Zeitplandatei an:

Crontab-l

Löschen der aktuellen Zeitplandatei:

Crontab-r

Bearbeiten der aktuellen Zeitplandatei (bei der ersten Ausführung wird eine Liste der unterstützten Texteditoren angezeigt):

Crontab-e

Mit diesem Schlüssel können Sie die oben genannten Aktionen für einen bestimmten Benutzer ausführen:

Crontab -u Benutzername

Beachten Sie, dass -u nur verwendet werden kann, wenn crontab als root ausgeführt wird.

Beispiele

Jede Minute:

* * * * *

Jede Stunde mit Cron-Variablen:

@hourly~/script.sh

Führen Sie jeden Tag um 03:15 das Skript aus:

15 3 * * * ~/script.sh

Jeden Montag:

0 0 * * 1

Jede gerade Stunde:

* */ 2 * * *

Wie oben, jedoch vollständig gemalt:

* 0 ,2 ,4 ,6 ,8 ,10 ,12 ,14 ,16 ,18 ,20 ,22 * * *

Alle 10 Minuten:

*/ 10 * * * *

Neues Jahr :

59 23 31 Dez*

Jeden Wochentag um 22:00 Uhr:

0 22 * * 1 -5

Starten eines Programms mit einer grafischen Shell (GUI); Jede Minute wird eine Meldung mit dem Text „It work!“ angezeigt:

0 -59 * * * * DISPLAY =:0 gdialog --msgbox "Es funktioniert\!" 25 20 > /dev/null

* wobei DISPLAY=:0 - Monitornummer

GUI-Versionen

GTK+

Es gibt ein sehr nützliches Programm: Geplante Aufgaben(Gnome-Zeitplan). Sie repräsentiert GUI für cron und wird für Anfänger nützlich sein, da einfache Sprache beschreibt die Ausführungszeit der Aufgabe. Z.B:

15 * * * *

jede Stunde in 15 Minuten;

* 0 * * *

jede Minute, zwischen 00:00 und 00:59.

In unseren Materialien gewidmet Ubuntu-Server Von Zeit zu Zeit wird die Frage nach der Durchführung von Aufgaben nach Zeitplan gestellt. Um nicht jedes Mal dasselbe zu erklären, haben wir uns entschieden, dieses Material zu erstellen, das helfen soll Systemadministratoren den Taskplaner unter Linux beherrschen und effektiv nutzen.

Ubuntu Server verwendet als Aufgabenplaner Cron- Zeitplaner mit Schnittstelle Befehlszeile. Es ist ein wichtiger Bestandteil des Systems und beginnt sofort nach der Installation zu funktionieren und führt verschiedene Systemaufgaben aus. Unser Ziel ist es, es in unseren Dienst 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 der erste von Benutzern erstellt und mit Benutzerrechten ausgeführt wird, der zweite für Verwaltungs- oder Systemzwecke verwendet wird und im Namen eines beliebigen Benutzers ausgeführt werden kann.

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

Crontab-e

Beim ersten Start fordert Sie das Dienstprogramm auf, einen Editor auszuwählen, wir empfehlen die Auswahl mcedit(mc muss installiert sein) oder einem anderen Editor, mit dem Sie arbeiten können.

Das Format der Einteilungen ist:

Befehl Minute Stunde Tag Monat Tag_Woche

  • Minute- Zeit in Minuten von 0 bis 59
  • Stunde- von 0 bis 23
  • der Tag- Tag des Monats von 1 bis 31
  • Monat- von 1 bis 12 oder Buchstaben jan - dec
  • Wochentag- von 0 bis 6 (0 - Sonntag) oder Sa - So
  • Team- eine Zeichenfolge im Shell-Format, die ausgeführt wird, kann wie folgt geschrieben werden Befehl1 && Befehl2 um mehrere Befehle hintereinander auszuführen.

Minuten, Stunden, Tage können wie folgt angegeben werden:

  • Bedeutung- eine Zahl, die das Datum oder die Uhrzeit angibt, ein Platzhalter ist zulässig * vollständige Palette
  • Mehrere Werte- Es dürfen mehrere durch Kommas getrennte Werte angegeben werden, zum Beispiel 2,14,22
  • Wertebereich- mit einem Bindestrich gekennzeichnet, 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

Dies bedeutet, dass jede zweite Stunde von 8 bis 19 (8, 10, 12, 14, 16) montags das Testskript in Ivanovs Home-Verzeichnis ausgeführt wird.

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

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

Diese Zeile führt das Skript aus jede Minute im Bereich von 10 bis 15 Uhr. 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 eine Reihe spezieller Zeichenfolgen verwendet werden:

  • @reboot- Befehl beim Neustart ausführen
  • @jährlich oder @jährlich- am 1. Januar durchführen, ähnlich dem Eintrag: " 0 0 1 1 * "
  • @monatlich- am 1. Tag jedes Monats durchführen, ähnlich " 0 0 1 * * "
  • @wöchentlich- jeden Sonntag aufführen, entspricht " 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 um Mitternacht können Sie also schreiben:

@midnight /home/ivanov/test

Speichern Sie nach Abschluss der Planung die Datei und beenden Sie den Editor. Der benutzerdefinierte Zeitplan wird gespeichert /var/spool/cron/crontabs unter dem Namen des aktuellen Benutzers.

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

Benutzerbefehl Minute Stunde Tag Monat Tag_Woche

Ein Beispiel für einen solchen Eintrag:

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

Demnach wird um 19:00 Uhr von Montag bis Freitag das Skript gestartet /etc/sicherung im Namen des Benutzers Wurzel.

Diese Datei enthält auch Systemzeitpläne und sollte daher mit Vorsicht bearbeitet werden. Alle System- und Verwaltungsaufgaben sollten darin platziert werden.

Wie wir sehen Cron recht einfach zu bedienen, bietet aber gleichzeitig reichhaltige Möglichkeiten zum Einrichten von Zeitplänen in Ubuntu Server. Wir hoffen, dass dieser Artikel Administratoren hilft, dieses Tool zu beherrschen.

Einführung

Durch das Hosten der Seite wollen wir einen unterbrechungsfreien Betrieb ohne unsere Mitwirkung erreichen.

Das bedeutet, dass Sie Prozesse automatisieren müssen, und hier kommt cron zur Rettung.

Cron- Programm, Daemon für Auto-Start Programme und Skripte zum richtigen Zeitpunkt auf dem Server.

Crontab in der Timeweb-Systemsteuerung

Wenn Ihr Konto bezahlt ist und Sie nicht beim Spammen erwischt wurden, ist der Crontab-Bereich verfügbar und betriebsbereit:

Die Crontab-Oberfläche im Timeweb-Bedienfeld ist benutzerfreundlich und intuitiv: Selbst unerfahrene Benutzer ohne vorherige Erfahrung mit Cron werden leicht herausfinden, wie man Aufgaben erstellt. Durch das Erstellen einer Aufgabe können Sie automatisch Backups und Mailings erstellen, den Cache löschen und andere typische Aktionen ausführen.

Crontab im Control Panel von Timeweb hilft jedem Benutzer, seine Aufgaben zu automatisieren und das gewünschte Ergebnis zu erzielen.

Nach den grundlegenden Informationen werde ich auf die Nuancen eingehen, die bei der Arbeit mit Cron wichtig sind.

Neue Aufgaben werden im Abschnitt Crontab erstellt. Dazu müssen Sie die Felder ausfüllen:

  • Name. So heißt unsere Aufgabe.
  • Dateityp und Pfad zur Datei. Wählen Sie je nach Sprache, in der das Skript geschrieben ist, den Dateityp und den Pfad dazu aus. Wenn eine Aufgabe ein Skript ausführt, das Webservervariablen erfordert, führt die direkte Ausführung über den PHP-Interpreter zu Fehlern. Wenn Sie also ein Skript verwenden, das funktioniert, wenn es über die Adressleiste des Browsers gestartet wird, müssen Sie den Dateityp „HTTP-Anfrage“ auswählen und die URL für die Anfrage so angeben, wie sie in der Adresse angegeben ist bar "your_site / path / to / script / script .php?option1=value1&option2=value2".

Geben Sie bei Bedarf ein Administratorkonto im Abschnitt Crontab an. Nachrichten werden an dieses Postfach gesendet, wenn eine Nachricht in der Konsole angezeigt wird, wenn das Skript ausgeführt wird.

Nuancen

Kleine Nuancen, die bei der Arbeit mit Cron zu beachten sind.

1. Cron funktioniert, wenn das Konto bezahlt wird und es keine Einschränkungen gibt.

Sie können den Status überprüfen, indem Sie eine Datei mit erstellen php-Erweiterung(zum Beispiel twtest.php) mit Code:

Und den Zugriff auf die Datei im Browser.

Im Browser sehen Sie die Informationen:

uid=12345(Login) gid=600(Kunden) Gruppen=600(Kunden) - zeigt an, dass Cron und Mail verfügbar sind

uid=12345(Login) gid=600(Kunden) Gruppen=601(Neukunden),600(Kunden),660(Spammer) - Support schreiben

2. Die Datei, die Sie ausführen, muss über Lese- und Ausführungsberechtigungen (r+x) verfügen.

Standardmäßig werden Dateien auf dem Hosting mit Berechtigungen von 600 erstellt. Sie können die Berechtigungen per ssh mit dem folgenden Befehl auf die von Ihnen benötigten ändern:

Chmod 744 twtest.php

oder hinein Dateimanager, Timeweb hat dazu eine Anleitung:

3. Um E-Mails nicht mit unnötigen Briefen zu verunreinigen,Konfigurieren Sie häufig ausgeführte Skripts, um sie in einer Datei zu protokollieren, nicht auf die Konsole.

CRON über SSH

Das Einrichten des Schedulers über ssh wurde so oft beschrieben, dass es nicht möglich sein wird, ein neues zu erzählen.

Die Verbindung über ssh ist ausführlich in beschrieben Hilfezentrum Zeitweb:

Nach dem Lesen müssen Sie die Datei mit dem Skript finden und mit dem Befehl cd zwischen den Verzeichnissen wechseln. Sobald Sie die Datei gefunden haben, geben Sie pwd ein und kopieren Sie den Pfad (Beispiel „/home/c/cc123456/public_html/test/“)

Wenn Sie nicht wissen, welche Berechtigungen die Datei hat, geben Sie Folgendes ein:

Chmod 744 Dateiname

Wenn Sie sich über ssh verbinden, können Sie Aufgaben mit dem Befehl bearbeiten

Crontab-e

Beim ersten Mal werden Sie vom Server aufgefordert, einen Editor auszuwählen:

Wählen Sie einen Bearbeiter aus. Um später zu ändern, führen Sie "select-editor" aus. 1. /bin/ed 2. /bin/nano<---- easiest 3. /usr/bin/mcedit 4. /usr/bin/vim.basic 5. /usr/bin/vim.tiny Choose 1-5 :

Das System zeigt auf einen einfachen Nano-Editor unter der Nummer 2. Wenn Sie Kräfte falsch berechnet oder versehentlich vi ausgewählt haben, seien Sie nicht beunruhigt, drücken Sie Esc, geben Sie dann einen Doppelpunkt q ein und drücken Sie die Eingabetaste.

Um den Editor zu ändern, geben Sie den Befehl ein:

Select-Editor

und wähle nano.

Aufgaben werden Zeile für Zeile geschrieben. Beispiel:

1 2 3 4 5 /opt/php56/bin/php /home/c/ss123456/public_html/twtest.php

Die Bedeutungen der ersten fünf Werte sind:

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

Für jeden Parameter ist es möglich, die erforderliche Anzahl von Werten durch Kommas getrennt einzustellen. Wenn Sie beispielsweise 8.23 ​​​​in das Feld "Stunden" schreiben, wird die Aufgabe um 8:00 Uhr und 23:00 Uhr ausgeführt. Sie können das Intervall einstellen: 9-18 bedeutet, dass das Programm stündlich im Zeitraum von 9 bis einschließlich 18 Uhr startet. Das Symbol „*“ bedeutet „alle möglichen Werte“. Wenn Sie beispielsweise „*“ im Feld „Stunden“ angeben, bedeutet dies „jede Stunde ausführen“. Das Symbol "/" wird verwendet, um die zusätzliche Häufigkeit des Jobs anzuzeigen. Beispielsweise bedeutet „*/3“ im Feld „Minuten“ „alle drei Minuten“.

"/opt/php*/bin/php" wobei php*/ = php53/ php5.3/ php54/ php5.4/ php56/ php5.6/ php70/ php7.0/ php71/ php7.1/

Der letzte Eintrag gibt den Pfad zur Datei und den Namen der Datei an, die wir starten.

Nuancen

  1. Bei Änderung in der Systemsteuerung im Bereich „Crontab“ werden über ssh vorgenommene Änderungen an Einträgen gelöscht!
  2. Wenn beide Felder "Tag des Monats" und "Wochentag" definiert sind, wird ein solcher Job unabhängig vom Tag des Monats an jedem angegebenen Wochentag ausgeführt. Der folgende Befehl wird beispielsweise jeden Mittwoch und jeden 7. des Monats um 9:19 ausgeführt, auch wenn der 7. nicht Mittwoch ist.

19 9 7 * 3 /opt/php56/bin/phpn /home/c/ss123456/public_html/twtest.php

Sonderfälle

Um eine Aufgabe mehr als einmal pro Minute auszuführen, verwenden Sie den Ruhezustand.

Dazu schreibt man in crontab:

* * * * * /opt/php56/bin/php /home/k/konoplev/tmp/twtest.php; /bin/sleep30; /opt/php56/bin/php /home/k/konoplev/tmp/twtest.php

um alle 30 Sekunden eine Datei auszuführen.

Bei Verwendung des Cron-Programmplaners ist manchmal nicht bekannt, wie lange die Skriptausführung dauert. Um einen doppelten Skriptstart zu vermeiden, ist eine Überprüfung des Abschlusses des vorherigen Skriptstarts erforderlich.

Die logische Option wäre, eine Sperrdatei zu erstellen und beim Ausführen des Skripts auf die Existenz der Datei zu prüfen. Aber beim Timeweb-Hosting sowie bei anderen Hostings gibt es ein Prozessorlimit. Das Skript hängt von den Bedingungen und der Ausführungszeit ab, was bedeutet, dass wir die Ausführungszeit des Skripts nicht vorhersagen können. Wenn das Skript unter Verstoß gegen die Regeln und Einschränkungen ausgeführt wird ( ), dann endet der Prozess auf der Hosting-Seite. Dann wird die Sperrdatei nicht gelöscht, was bedeutet, dass das Skript nicht von cron ausgeführt wird, bis die Datei gelöscht ist.

Maestro aus der technischen Abteilung erklärte, wie man das Problem löst.

Erstellen Sie zunächst ein sh-Skript in der Datei /home/c/cc123456/tmp/twtest.sh:

#!/bin/bash [E-Mail geschützt] no_spaces=`echo $Befehl | sed -e "s/\s/_/g" -e "s|/|_|g"` pidfile=/var/tmp/$no_spaces.pid lockfile=/var/tmp/$no_spaces.lock if [[ -e $pidfile ]] dann pid=`cat $pidfile 2>/dev/null` ps h $pid >/dev/null 2>/dev/null wenn[[$? -eq 0 ]] then exit 1 else rm $lockfile fi fi echo $$ > $pidfile /usr/bin/flock -w 0 $lockfile $befehl rm $pidfile

Wählen Sie in der Systemsteuerung im Bereich Crontab den Typ „Ausführbare Binärdatei“ aus.

Schreiben Sie in das Feld „Vollständiger Pfad“:

/home/c/cc123456/tmp/twtest.sh /opt/php56/bin/php /home/c/cc123456/tmp/twtest.php

Wo

  • /home/c/cc123456/tmp/twtest.sh - unser Testskript
  • /opt/php56/bin/php - Pfad zum erforderlichen Interpreter
  • /home/c/cc123456/tmp/twtest.php - Pfad zu unserem Skript

Geben Sie die erforderliche Startzeit an und lassen Sie sich einen Namen einfallen.

Fazit

Jetzt wissen Sie, wie Sie mit Cron arbeiten und Aufgaben automatisch ausführen. Mehr genaue Information für cron schau in "man cron". Viel Glück!


oben