Wie installiert man Crontab auf CentOS/RHEL Linux?

Veröffentlicht 27. August 2024

Problem: Installation von Crontab auf CentOS/RHEL

Crontab ist ein Tool zur Planung von Aufgaben auf Linux-Systemen. Einige Benutzer haben möglicherweise Schwierigkeiten bei der Installation und Einrichtung von Crontab auf CentOS- oder RHEL-Distributionen. Dies kann sie daran hindern, Routineaufgaben zu automatisieren und geplante Jobs auf ihren Servern zu verwalten.

Installation von Cron und Crontab auf CentOS/RHEL

Überprüfen, ob Cron bereits installiert ist

Um zu überprüfen, ob Cron auf Ihrem CentOS/RHEL-System installiert ist, öffnen Sie ein Terminal und führen Sie diesen Befehl aus:

rpm -q cronie

Dieser Befehl fragt den RPM-Paketmanager nach dem "cronie"-Paket ab, das Cron auf CentOS/RHEL-Systemen bereitstellt.

Wenn Cron installiert ist, sehen Sie eine Ausgabe wie:

cronie-1.4.11-23.el7.x86_64

Wenn Cron nicht installiert ist, sehen Sie eine Meldung wie:

package cronie is not installed

Installation von Cron mit dem YUM-Paketmanager

Wenn Cron nicht auf Ihrem System installiert ist, können Sie es mit dem YUM-Paketmanager installieren. Folgen Sie diesen Schritten:

  1. Öffnen Sie ein Terminal auf Ihrem CentOS/RHEL-System.

  2. Führen Sie diesen Befehl aus, um Cron zu installieren:

sudo yum install cronie
  1. Wenn Sie gefragt werden, geben Sie 'y' ein und drücken Sie Enter, um die Installation zu bestätigen.

  2. Starten Sie nach der Installation den Cron-Dienst:

sudo systemctl start crond
  1. Stellen Sie Cron so ein, dass es beim Systemstart automatisch startet:
sudo systemctl enable crond

Diese Befehle installieren Cron und richten es so ein, dass es automatisch startet, wenn Ihr System hochfährt. Nach der Installation können Sie Crontab verwenden, um Aufgaben auf Ihrem CentOS/RHEL-System zu planen.

Konfiguration und Verwendung von Crontab auf CentOS

Zugriff auf den Crontab-Editor

Um die Crontab-Datei zu öffnen und zu bearbeiten, verwenden Sie diesen Befehl:

crontab -e

Dies öffnet die Crontab-Datei für den aktuellen Benutzer im Texteditor. Um die Crontab für einen anderen Benutzer zu bearbeiten, verwenden Sie:

sudo crontab -u benutzername -e

Es gibt zwei Arten von Crontabs:

  1. Benutzerspezifische Crontabs: Erstellt für einzelne Benutzer und in /var/spool/cron/ gespeichert.

  2. Systemweite Crontabs: Gespeichert in /etc/crontab und /etc/cron.d/ für systemweite Aufgaben.

Verständnis der Crontab-Syntax

Cron-Ausdrücke folgen diesem Format:

* * * * * auszuführender_befehl

Die fünf Sternchen stehen für:

  1. Minute (0-59)
  2. Stunde (0-23)
  3. Tag des Monats (1-31)
  4. Monat (1-12)
  5. Wochentag (0-7, wobei 0 und 7 Sonntag sind)

Sie können Zahlen, Sternchen (*), Kommas (,), Bindestriche (-) und Schrägstriche (/) in diesen Feldern verwenden, um anzugeben, wann der Befehl ausgeführt werden soll.

Erstellung Ihres ersten Cron-Jobs

Hier ist ein Beispiel für einen einfachen Cron-Job-Eintrag:

30 2 * * * /pfad/zum/backup_skript.sh

Dieser Cron-Job führt ein Backup-Skript jeden Tag um 2:30 Uhr aus.

Um Aufgaben in bestimmten Intervallen zu planen:

  • Alle 15 Minuten: /15 * befehl
  • Jede Stunde: 0 befehl
  • Jeden Tag um Mitternacht: 0 0 * befehl
  • Jeden Montag um 9 Uhr: 0 9 1 befehl

Verwenden Sie absolute Pfade für Befehle und Skripte in Ihren Cron-Jobs, um Probleme mit der Cron-Umgebung zu vermeiden.

Verwaltung von Cron-Jobs auf CentOS

Auflisten vorhandener Cron-Jobs

Um aktuelle Crontab-Einträge anzuzeigen, verwenden Sie diesen Befehl:

crontab -l

Dieser Befehl zeigt alle Cron-Jobs für den aktuellen Benutzer an. Um Cron-Jobs für einen bestimmten Benutzer anzuzeigen, verwenden Sie:

sudo crontab -u benutzername -l

Die Ausgabe zeigt jeden Cron-Job in einer separaten Zeile an. Zum Beispiel:

0 2 * * * /pfad/zum/backup_skript.sh
30 * * * * /usr/bin/php /var/www/html/skript.php

Jede Zeile zeigt eine geplante Aufgabe mit ihrer Zeitplanung und dem Befehl.

Bearbeiten und Löschen von Cron-Jobs

Um vorhandene Cron-Jobs zu ändern:

  1. Öffnen Sie den Crontab-Editor:

    crontab -e
  2. Finden Sie den Job, den Sie ändern möchten.

  3. Bearbeiten Sie die Zeitplanung oder den Befehl nach Bedarf.

  4. Speichern Sie und verlassen Sie den Editor.

Um Cron-Aufgaben zu entfernen:

  1. Öffnen Sie den Crontab-Editor wie oben gezeigt.

  2. Finden Sie die Zeile mit dem Job, den Sie entfernen möchten.

  3. Löschen Sie die gesamte Zeile.

  4. Speichern Sie und verlassen Sie den Editor.

Um alle Cron-Jobs für den aktuellen Benutzer zu löschen:

crontab -r

Seien Sie vorsichtig mit diesem Befehl, da er alle geplanten Aufgaben für diesen Benutzer entfernt.

Um einen bestimmten Job zu entfernen, ohne den Editor zu öffnen, können Sie diese Methode verwenden:

  1. Listen Sie aktuelle Jobs auf und speichern Sie sie:

    crontab -l > meincron
  2. Bearbeiten Sie die 'meincron'-Datei, um den unerwünschten Job zu entfernen.

  3. Laden Sie den aktualisierten Crontab:

    crontab meincron
  4. Entfernen Sie die temporäre Datei:

    rm meincron

Dieser Prozess hilft Ihnen, Ihre Cron-Jobs zu verwalten, ohne versehentliche Löschungen zu riskieren.

Fehlerbehebung bei Cron auf CentOS/RHEL Linux

Häufige Crontab-Probleme und Lösungen

Beheben von Berechtigungsproblemen

Berechtigungsprobleme können die Ausführung von Cron-Jobs verhindern. Um diese zu beheben:

  1. Überprüfen Sie die Dateiberechtigungen:

    ls -l /pfad/zu/ihrem/skript

    Machen Sie das Skript ausführbar:

    chmod +x /pfad/zu/ihrem/skript
  2. Überprüfen Sie die Cron-Job-Besitzerschaft:

    ls -l /var/spool/cron/

    Stellen Sie sicher, dass die Crontab-Datei dem richtigen Benutzer gehört.

  3. Prüfen Sie, ob der Benutzer den Befehl ausführen oder auf benötigte Dateien zugreifen kann.

Lösen von Pfad- und Umgebungsvariablenproblemen

Cron läuft mit einer eingeschränkten Umgebung, was zu Pfadproblemen führen kann:

  1. Verwenden Sie vollständige Pfade für Befehle und Skripte in Ihren Cron-Jobs.

  2. Setzen Sie die PATH-Variable am Anfang Ihres Crontabs oder Skripts:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  3. Verwenden Sie das Benutzerprofil im Cron-Job:

    * * * * * . $HOME/.profile; /pfad/zu/ihrem/skript

Überwachung der Cron-Job-Ausführung

Wie man die Ausgabe von Cron-Jobs protokolliert

Um die Ausgabe Ihrer Cron-Jobs zu erfassen:

  1. Senden Sie die Ausgabe in eine Protokolldatei:

    * * * * * /pfad/zu/ihrem/skript >> /pfad/zur/logdatei.log 2>&1
  2. Verwenden Sie mail, um die Job-Ausgabe per E-Mail zu senden:

    MAILTO=ihre@email.com
    * * * * * /pfad/zu/ihrem/skript
  3. Überprüfen Sie Systemprotokolle auf Cron-Nachrichten:

    grep CRON /var/log/syslog

Tools zur Verfolgung der Cron-Job-Leistung

Um die Leistung von Cron-Jobs zu überwachen:

  1. Verwenden Sie time, um zu messen, wie lange Jobs dauern:

    * * * * * /usr/bin/time -o /pfad/zur/zeitprotokoll.txt /pfad/zu/ihrem/skript
  2. Fügen Sie Protokollierung zu Ihren Skripten hinzu, um Fortschritt und Abschluss zu verfolgen.

  3. Verwenden Sie Tools wie top oder htop, um die Ressourcennutzung während der Job-Ausführung zu sehen.

  4. Nutzen Sie Cron-Überwachungsdienste für detailliertere Informationen und Warnungen.