Wie man Cron-Jobs mit Crontab unter CentOS und RHEL Linux einrichtet

Sie kennen das Problem: Cron führt Ihre geplanten Aufgaben nicht richtig aus oder startet gar nicht erst. Das kommt häufiger vor, als man denkt, besonders auf Linux-Systemen wie CentOS oder RHEL. Dieser Leitfaden hilft Ihnen dabei, Cron korrekt zu installieren, einzurichten und seine Funktionsfähigkeit sicherzustellen – denn es ist ziemlich ärgerlich, wenn Ihre Automatisierung einfach nicht funktioniert.

Sobald du das eingerichtet hast, kannst du Skripte oder Befehle problemlos planen und Benachrichtigungen per E-Mail erhalten (falls gewünscht).Glaub mir, wenn du den Dreh raus hast, ist es ganz einfach – aber die anfänglichen Schwierigkeiten können ärgerlich sein, wenn du nicht weißt, wo du suchen oder welche Befehle du ausführen sollst.

So installieren und konfigurieren Sie Cron unter CentOS oder RHEL

Methode 1: Installieren Sie Cron, falls es fehlt oder nicht ordnungsgemäß funktioniert.

Dies ist der erste Schritt – denn manchmal ist cron nach einer Neuinstallation nicht sofort installiert oder konfiguriert. Normalerweise ist cron (über crontabs ) unter CentOS oder RHEL bereits enthalten. Falls nicht, erfahren Sie hier, wie Sie das Problem beheben. Mit den richtigen Befehlen stellen Sie sicher, dass Sie keine unnötigen Änderungen vornehmen und am Ende einen nicht funktionierenden Cron-Scheduler haben.

  • Aktualisieren Sie vorsichtshalber zuerst alle Ihre Pakete: # dnf update -y. Bei älteren Systemen könnte es so aussehen yum update -y:.
  • Installieren Sie anschließend das Cron-Paket # dnf install crontabs -y. Sollten Fehlermeldungen bezüglich Berechtigungen auftreten, überprüfen Sie Ihre Benutzerrechte oder versuchen Sie, das Programm als Root auszuführen.

Nach der Installation müssen Sie den Cron-Daemon aktivieren und starten, damit er im Hintergrund ausgeführt werden kann. Dies ist unerlässlich – andernfalls funktioniert er nicht.

  • Aktivieren Sie den Dienst, damit er beim Systemstart automatisch startet:# systemctl enable crond.service
  • Beginnen Sie sofort:# systemctl start crond.service

Überprüfen Sie nun, ob der Dienst tatsächlich ausgeführt wird # systemctl status crond.service. Falls er nicht aktiv ist, liegt ein Problem vor – prüfen Sie gegebenenfalls die Protokolle oder Berechtigungen. Manchmal sudo rebootkann ein Neustart des Systems ungewöhnliche Fälle beheben, aber in der Regel behebt dies das Problem mit cron.

Methode 2: Stellen Sie sicher, dass Cron aktiviert und aktiv ist.

Bei manchen Konfigurationen ist der Dienst zwar installiert, aber deaktiviert oder stürzt nach dem Systemstart ab.# systemctl status crond.serviceÜberprüfen Sie dies. Falls er nicht aktiv ist, führen Sie die Befehle zum Aktivieren/Starten erneut aus. Beachten Sie außerdem, dass SELinux-/AppArmor-Konfigurationen manchmal Probleme verursachen können – überprüfen Sie diese daher, falls nach der Einrichtung weiterhin Probleme auftreten.

Was Sie erwartet:

Nach all dem sollte Ihr Cron-Daemon aktiv und ordnungsgemäß funktionieren und unter `/usr/lib/systemd/system/crond.service` gespeichert sein. Er wird jede Minute aktiv, um geplante Aufgaben zu überprüfen. Dieses minimale Intervall macht Cron so zuverlässig, erschwert aber anfangs auch die Fehlersuche.

Wie man Crontab-Jobs richtig einrichtet

Methode 1: Verwendung des Crontab-Befehls

Das ist die übliche Vorgehensweise – Sie müssen nicht direkt in Systemdateien herumfummeln.Öffnen Sie # crontab -eIhre persönliche Crontab-Datei im Standardeditor. Normalerweise ist das Vim, aber Sie können auch Nano verwenden, wenn Sie Vim nicht bevorzugen. Ganz wichtig: Die Syntax muss perfekt sein, da Cron keine Fehler verzeiht. Speichern und beenden Sie die Datei, und der Job wird eingeplant.

Wenn Sie beispielsweise ein Skript haben möchten, das /root/test.shjede Minute ausgeführt wird, fügen Sie diese Zeile hinzu:

* * * * * /root/test.sh

Das war’s. Nach dem Speichern überprüfen Sie, # crontab -lob der Job angezeigt wird. Alternativ können Sie in `/var/spool/cron/IhrBenutzername` oder `/var/spool/cron/root` nachsehen – je nachdem, welchen Crontab-Eintrag Sie bearbeiten. Es ist nicht nötig, größere Änderungen an Systemdateien vorzunehmen, es sei denn, Sie konfigurieren systemweite Aufgaben.

Methode 2: Manuelles Bearbeiten von Cron-Dateien

Da manche gerne selbst Hand anlegen, können Sie die Dateien direkt bearbeiten # mcedit /var/spool/cron/root– aber Vorsicht: Syntaxfehler können Cronjobs zum Absturz bringen oder deren Ausführung verhindern. Erstellen Sie daher immer zuerst eine Sicherungskopie, bearbeiten Sie die Datei und überprüfen Sie anschließend die Syntax.

Cron-Syntax verstehen

Die Zeitplanzeile sieht auf den ersten Blick einschüchternd aus, besteht aber nur aus fünf Feldern mit einigen Sonderzeichen:

Minutes Hours Day_of_Month Month Day_of_Week /path/to/script.sh

Hier eine kurze Übersicht: – *Minuten*: 0-59 – *Stunden*: 0-23 – *Tag des Monats*: 1-31 – *Monat*: 1-12 oder Jan., Feb., …- *Wochentag*: 0-6 oder So., Mo., …

Das Sternchen ( *) bedeutet „jeder mögliche Wert“, also * * * * *wird der Job jede Minute jedes Tages ausgeführt. Wenn Sie einen Job wöchentlich ausführen möchten, beispielsweise sonntags um 2 Uhr morgens, würde das bedeuten 0 2 * * 0:.

Cron-Benachrichtigungen senden – behalten Sie die Dinge im Auge

Lassen Sie sich per E-Mail benachrichtigen

Wenn Sie keine Lust mehr haben, Protokolle manuell zu prüfen, können Sie E-Mail-Benachrichtigungen einrichten. Dazu benötigen Sie zunächst ein E-Mail-Programm wie beispielsweise sendmail. Die Installation ist einfach, # dnf install sendmail -yund das Programm lässt sich mit [Befehl einfügen] starten # systemctl start sendmail. Stellen Sie sicher, dass es funktioniert, bevor Sie fortfahren.

Öffnen Sie Ihre Crontab (oder bearbeiten Sie die systemweite Crontab in /etc/crontab ) und fügen Sie diese Zeilen oben hinzu:

MAILTO="[[email protected]]" SHELL=/bin/bash HOME=/ 

So erhalten Sie jedes Mal eine E-Mail, wenn ein geplanter Task ausgeführt wird. Das ist praktisch für die Überwachung und das Debuggen von Skripten.

Möchten Sie die Ausgabe irgendwo protokollieren? Hängen Sie sie an >> /path/to/logfile.log, um die Ausgabe zu erfassen, oder senden Sie sie zur stillen Ausführung nach /dev/null.

* * * * * /root/test.sh >> /var/log/test.log

Cron-Konfigurationsdateien und -Protokolle

Die Hauptsystemkonfiguration befindet sich in /etc/crontab, aber es gibt auch nützliche Verzeichnisse wie:

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.weekly
  • /etc/cron.monthly

Sie können dort Skripte einfügen, die dann in festgelegten Intervallen automatisch ausgeführt werden. Stellen Sie nur sicher, dass sie ausführbar sind.

Falls etwas schiefgeht, überprüfen Sie die Datei `/var/log/cron` – dort protokolliert Cron seine Aktivitäten und Fehler. Dies ist hilfreich, um die Ursache dafür zu finden, warum Ihre Jobs nicht ausgeführt werden oder der Cron-Daemon fehlerhaft arbeitet.

Manchmal verhindern Berechtigungen oder SELinux-Richtlinien, dass cron Skripte ordnungsgemäß ausführt.Überprüfen Sie diese daher, falls Sie nicht weiterkommen.

Wenn Sie mit komplexen Setups zu tun haben oder eine robustere Lösung wünschen, gibt es Repositories wie GitHub: Winhance, die bei der Automatisierung oder Verbesserung der Cron-Funktionalität helfen können, aber das ist eine andere Geschichte.

Die Einrichtung von cron kann anfangs etwas knifflig sein – aber sobald es läuft, funktioniert es fast von selbst. Behalten Sie die Protokolle und Ausgaben im Auge, falls etwas Ungewöhnliches auffällt, und denken Sie daran: Manchmal braucht cron nur einen Neustart oder eine kurze Überprüfung der Berechtigungen.

Hoffentlich hilft das jemandem, seine geplanten Aufgaben unter CentOS oder RHEL endlich zum Laufen zu bringen. Es ist ein kleiner Schritt hin zur Automatisierung der lästigen Routinearbeiten, und genau das macht Linux so stark.

Zusammenfassung

  • dnf install crontabsStellen Sie sicher, dass Cron installiert ist und der Dienst mit den Parametern und ausgeführt wird systemctl enable/start crond.
  • Dient crontab -ezum sicheren Hinzufügen oder Bearbeiten geplanter Aufgaben.
  • Wenn etwas nicht funktioniert, überprüfen Sie die Protokolle in /var/log/cron.
  • Konfigurieren Sie E-Mail-Benachrichtigungen, wenn Sie über die Ausführung von Aufträgen informiert werden möchten.
  • Legen Sie Skripte in die Ordner /etc/cron.*, um sie automatisch in regelmäßigen Abständen auszuführen.

Zusammenfassung

Cronjobs so einzurichten, dass sie die gewünschten Aufgaben erledigen, ist nicht immer einfach, aber es lohnt sich. Sobald es eingerichtet ist, können automatisierte Backups, Berichte und andere Aktionen planmäßig ausgeführt werden und so die automatisierten Prozesse Ihres Servers in Gang setzen. Hoffentlich ist das ein guter Start und erspart Ihnen später einige Probleme. Viel Erfolg – ​​und mögen Ihre Skripte reibungslos laufen!