07.06.2023

So automatisieren Sie regelmäßige Aufgaben mit aktiviertem Cron CentOS 8

Cron ist ein Dienst, der im Hintergrund läuft und konfigurierte Aufgaben nach einem Zeitplan startet. Dies macht es sehr nützlich für die Serverwartung. In diesem Tutorial werfen wir einen Blick darauf, wie Sie häufige Aufgaben mithilfe von cron on automatisieren CentOS 8.

cron installieren CentOS 8

Cron ist vorhanden CentOS 8 standardmäßig. Wenn es aus irgendeinem Grund nicht vorhanden ist, können Sie es mit dem folgenden Befehl installieren:

DNF Crontabs installieren

Lassen Sie es uns nun ausführen und zum Start hinzufügen:

systemctl enable --now crond.service

Grundlegende Cron-Einstellungen

Zur Feinabstimmung der Zeit und Häufigkeit der Aufgabenausführung gibt es die crontab Befehl. Wir reden später darüber. Darüber hinaus sind die folgenden Ordner vorhanden, um das Hinzufügen von Aufgaben zu erleichtern:

  • /etc/cron.stündlich
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monatlich

Die darin befindlichen Skripte werden mit der angegebenen Häufigkeit ausgeführt. Um erfolgreich zu funktionieren, müssen Skripte über Ausführungsrechte verfügen und dürfen keine Punkte im Namen enthalten.

Standardmäßig kann jeder Benutzer Aufgaben erstellen. Um die Erstellung von Aufgaben für bestimmte Benutzer zu ermöglichen, fügen Sie diese zum hinzu /etc/cron.allow Datei. Allen anderen wird der Zugang verweigert.

Um diese Möglichkeit auf einen bestimmten Benutzer zu beschränken, fügen Sie einfach dessen Login hinzu /etc/cron.deny Datei.

Cron schreibt Protokolle in die folgende Datei: /var/log/cron.

Feinabstimmung von Cron-Aufgaben

Um Aufgaben mit der Möglichkeit zu verwalten, den genauen Zeitpunkt und die Häufigkeit der Ausführung anzugeben, verwenden Sie den folgenden Befehl:

crontab -e

Die Scheduler-Konfiguration wird in Ihrem Standard-Texteditor (normalerweise vi) geöffnet. Um einen anderen Standard-Texteditor zu konfigurieren, verwenden Sie den Befehl (fügen Sie Ihren bevorzugten Texteditor anstelle von „nano“ ein):

export EDITOR = nano

Um die aktuellen Cron-Einstellungen anzuzeigen, führen Sie Folgendes aus:

Crontab -l

Geben Sie Folgendes ein, um die Cron-Einstellungen eines anderen Benutzers anzuzeigen:

crontab -u Benutzer -l

Für die Bearbeitung:

crontab -u Benutzer -e

Verwendung der crontab Der Befehl bietet beim Speichern eine Syntaxprüfung, um Fehler zu vermeiden. Aus diesem Grund ist es besser, diesen Befehl zum Konfigurieren von Cron zu verwenden. Zur Information: Die Scheduler-Datei kann direkt bearbeitet werden. Es befindet sich in / var / spool / cron /.

Es ist auch erwähnenswert, dass die zugewiesenen Aufgaben im Namen des Benutzers ausgeführt werden, der sie zu seinem Cron hinzugefügt hat.
Die Cron-Dateien verwenden die folgende Syntax:

# Beispiel einer Jobdefinition:
# .---------------- Minute (0 - 59)
# | .------------- Stunde (0 - 23)
# | | .---------- Tag des Monats (1 - 31)
# | | | .------- Monat (1 - 12) ODER Januar, Februar, März, April ...
# | | | | .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER So, Mo, Di, Mi, Do, Fr, Sa
# | | | | |
# * * * * * auszuführender Befehl

Das *-Zeichen bedeutet alle gültigen Werte. Beispiel für einen Cron-Job:

30 22 15 * * /opt/script.sh

Das Skript /opt/script.sh findet jeweils am 15. eines Monats um 22:30 Uhr statt.

Sonderzeichen und Cron-Ausdrücke

Komma (,). Im Zeitplan können Sie mehrere durch Kommas getrennte Werte angeben, um dieselbe Aufgabe zu unterschiedlichen Zeiten auszuführen:

30 22 10,20,30 * *

Mit einem solchen Rekord wird die Aufgabe am 10., 20. und 30. eines jeden Monats gestartet.
SlaSch (/). Slash wird verwendet, um einen Schritt anzuzeigen. Die Ausführung einer Aufgabe alle 10 Tage sieht beispielsweise so aus:

30 22 */10 **

Bindestrich (-). Zur Angabe eines Wertebereichs gibt es einen Bindestrich. Zum Beispiel tägliche Ausführung vom 10. bis 20. des Monats:

30 22 10-20 * *

Spezielle Cron-Variablen:

  • @reboot – beim Systemstart ausführen
  • @yearly oder @annually – einmal im Jahr
  • @monthly – einmal im Monat
  • @weekly – einmal pro Woche
  • @daily – einmal am Tag
  • @hourly – jede Stunde
  • @midnight – um Mitternacht

Beispiel:

@daily /opt/script.sh