Wie man prüft, ob ein Cron-Job in Linux geplant ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie geplante Cron-Jobs auf einem Linux-System überprüfen können. Sie beginnen damit, die benutzerspezifischen Cron-Jobs mit dem Befehl crontab -l anzuzeigen.

Als Nächstes werden Sie die systemweiten Cron-Konfigurationen untersuchen, indem Sie die Datei /etc/crontab prüfen und die in den Verzeichnissen /etc/cron.* definierten Zeitpläne betrachten. Diese praktische Erfahrung wird Sie mit den wesentlichen Fähigkeiten ausstatten, um zu identifizieren und zu verstehen, wie Aufgaben auf einem Linux-System automatisch geplant werden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/crontab("Job Scheduling") subgraph Lab Skills linux/ls -.-> lab-558705{{"Wie man prüft, ob ein Cron-Job in Linux geplant ist"}} linux/cat -.-> lab-558705{{"Wie man prüft, ob ein Cron-Job in Linux geplant ist"}} linux/crontab -.-> lab-558705{{"Wie man prüft, ob ein Cron-Job in Linux geplant ist"}} end

Anzeigen von Benutzer-Cron-Jobs mit crontab -l

In diesem Schritt lernen Sie, wie Sie geplante Aufgaben für den aktuellen Benutzer mit dem Befehl crontab anzeigen können.

Cron ist ein zeitbasierter Job-Scheduler (Aufgabenplaner) in Unix-ähnlichen Betriebssystemen. Es ermöglicht Benutzern, Befehle oder Skripte so zu planen, dass sie automatisch zu einem bestimmten Zeitpunkt oder Datum ausgeführt werden. Diese geplanten Aufgaben werden oft als "Cron-Jobs" bezeichnet.

Jeder Benutzer auf dem System kann seine eigene Reihe von Cron-Jobs haben. Diese werden in einer speziellen Datei namens "Crontab" (Cron-Tabelle) gespeichert.

Um die Cron-Jobs für den aktuellen Benutzer (labex) anzuzeigen, verwenden Sie den Befehl crontab mit der Option -l. Das -l steht für "list" (auflisten).

Öffnen Sie das Terminal, wenn Sie es noch nicht getan haben. Denken Sie daran, dass Sie das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden können.

Geben Sie den folgenden Befehl im Terminal ein und drücken Sie die Eingabetaste:

crontab -l

Wenn Sie noch keine Cron-Jobs für den Benutzer labex eingerichtet haben, sehen Sie wahrscheinlich eine Meldung, die darauf hinweist, dass es keine Crontab-Einträge gibt. Dies ist für eine frische Benutzerumgebung zu erwarten.

no crontab for labex

Diese Ausgabe bestätigt, dass der Benutzer labex derzeit keine persönlichen Cron-Jobs geplant hat.

Wenn es für den Benutzer labex geplante Aufgaben gäbe, würden diese hier aufgelistet werden, wobei der Zeitplan und der auszuführende Befehl angezeigt werden.

Das Verständnis, wie man vorhandene Cron-Jobs anzeigt, ist der erste Schritt bei der Verwaltung von geplanten Aufgaben auf einem Linux-System. In den nächsten Schritten werden Sie die systemweiten Cron-Konfigurationen untersuchen.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der System-Crontab in /etc/crontab

Im vorherigen Schritt haben Sie gelernt, wie Sie die Cron-Jobs für einen bestimmten Benutzer anzeigen können. Jetzt wollen wir uns die systemweiten Cron-Jobs ansehen, die normalerweise in der Datei /etc/crontab konfiguriert sind.

Im Gegensatz zu den Benutzer-Crontabs, die mit dem Befehl crontab verwaltet werden, ist die Datei /etc/crontab eine systemweite Konfigurationsdatei, die direkt vom Systemadministrator (oder einem Benutzer mit sudo-Rechten) bearbeitet werden kann. Diese Datei enthält oft Cron-Jobs, die für den Betrieb des Systems unerlässlich sind.

Um den Inhalt der Datei /etc/crontab anzuzeigen, können Sie einen Befehlszeilen-Textbetrachter wie cat oder less verwenden. Da /etc/crontab eine Systemdatei ist, benötigen Sie möglicherweise sudo, um sie lesen zu können. In dieser LabEx-Umgebung können Sie sie jedoch normalerweise ohne sudo lesen. Verwenden wir cat, um den Inhalt direkt im Terminal anzuzeigen.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /etc/crontab

Sie werden den Inhalt der System-Crontab-Datei sehen. Es könnte so aussehen:

## /etc/crontab: system-wide crontab
## Unlike any other crontab you might learn about, this file has a fifth field
## which is the user that the command will run as.
#
## min hour day month wday user command
## ---- ---- --- ----- ---- ---- -------
#
## Example of job execution:
## .---------------- minute (0 - 59)
## |  .------------- hour (0 - 23)
## |  |  .---------- day of month (1 - 31)
## |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
## |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
## |  |  |  |  |  .- user to run job as
## |  |  |  |  |  |  . command to be executed
## |  |  |  |  |  |  |
## *  *  *  *  *  user command
#
... (other entries)

Beachten Sie die Struktur dieser Datei. Sie enthält Kommentare, die das Format erklären, und jede Zeile, die einen Cron-Job darstellt, hat im Vergleich zu Benutzer-Crontabs ein zusätzliches Feld: das user-Feld. Dieses Feld gibt an, als welcher Benutzer der Befehl ausgeführt werden soll.

System-Crontabs werden oft für Aufgaben wie Systemupdates, Log-Rotation und andere Wartungsaktivitäten verwendet, die mit erhöhten Rechten oder als bestimmter Systembenutzer ausgeführt werden müssen.

Durch die Untersuchung von /etc/crontab erhalten Sie Einblicke in die automatisierten Aufgaben, die auf Systemebene geplant sind.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren, in dem Sie andere Speicherorte für systemweite Cron-Jobs untersuchen werden.

Prüfen der Cron-Zeitpläne in /etc/cron.*

Neben der Hauptdatei /etc/crontab verwenden viele Linux-Distributionen Verzeichnisse wie /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ und /etc/cron.monthly/, um systemweite Cron-Jobs zu organisieren.

Diese Verzeichnisse bieten eine strukturiertere Möglichkeit, geplante Aufgaben zu verwalten. Skripte, die in /etc/cron.hourly/ platziert werden, werden stündlich ausgeführt, die in /etc/cron.daily/ werden täglich ausgeführt und so weiter. Die genaue Zeitsteuerung wird normalerweise durch ein Skript in /etc/crontab gesteuert, das diese Verzeichnisse in regelmäßigen Abständen ausführt.

Lassen Sie uns den Inhalt dieser Verzeichnisse prüfen, um zu sehen, welche Systemaufgaben geplant sind.

Zunächst listen wir den Inhalt des Verzeichnisses /etc/cron.d/ auf. In diesem Verzeichnis befinden sich oft Dateien, die von installierten Paketen platziert werden und bestimmte Cron-Jobs definieren.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

ls /etc/cron.d/

Sie sehen möglicherweise eine Ausgabe ähnlich der folgenden, die die Dateien im Verzeichnis auflistet:

anacron  e2scrub_all  phpsessionclean

Diese Dateien enthalten Cron-Job-Definitionen, die in ihrem Format ähnlich /etc/crontab sind (einschließlich des Benutzerfelds). Sie können den Inhalt einer beliebigen dieser Dateien mit cat anzeigen. Beispielsweise, um die Datei anacron anzuzeigen:

cat /etc/cron.d/anacron

Als nächstes schauen wir uns die Verzeichnisse für stündliche, tägliche, wöchentliche und monatliche Jobs an. Wir können den Inhalt dieser Verzeichnisse mit ls auflisten.

Geben Sie die folgenden Befehle nacheinander ein und drücken Sie nach jedem die Eingabetaste:

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

Sie sehen möglicherweise verschiedene Skripte oder Dateien in diesen Verzeichnissen aufgelistet. Beispielsweise enthält /etc/cron.daily/ oft Skripte für Aufgaben wie das Aktualisieren der Paketliste, das Löschen temporärer Dateien oder das Rotieren von Logs.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

Diese Skripte werden vom Cron-System in den angegebenen Intervallen (stündlich, täglich, wöchentlich, monatlich) automatisch ausgeführt.

Durch die Prüfung der Dateien in /etc/crontab und der Verzeichnisse unter /etc/cron.* können Sie einen umfassenden Überblick über die automatisierten Aufgaben erhalten, die auf dem System laufen. Dies ist für die Systemadministration und die Fehlerbehebung von entscheidender Bedeutung.

Sie haben nun die wichtigsten Speicherorte zur Anzeige von sowohl Benutzer- als auch systemweiten Cron-Jobs untersucht.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie geplante Cron-Jobs in Linux prüfen können. Sie haben begonnen, indem Sie die benutzerspezifischen Cron-Jobs mit dem Befehl crontab -l angesehen haben und verstanden haben, dass jeder Benutzer seine eigene Reihe von geplanten Aufgaben in seiner Crontab-Datei speichern kann. Sie haben gesehen, wie Sie die Ausgabe interpretieren können, einschließlich der Meldung, die darauf hinweist, dass es keine bestehenden Cron-Jobs für den aktuellen Benutzer gibt.

Danach haben Sie begonnen, die systemweiten Cron-Konfigurationen zu untersuchen, wobei Sie sich speziell auf die Datei /etc/crontab konzentriert haben. Diese Datei wird für systemweite Cron-Jobs verwendet und wird direkt vom Systemadministrator verwaltet, im Gegensatz zu Benutzer-Crontabs. Das Verständnis sowohl der Speicherorte der Benutzer- als auch der systemweiten Cron-Jobs ist von entscheidender Bedeutung, um die geplanten Aufgaben auf einem Linux-System umfassend zu prüfen.