Erstellen eines benutzerdefinierten Cron-Jobs unter Linux

Die Automatisierung routinemĂ€ĂŸiger Aufgaben ist in jeder robusten Systemadministration oder Webentwicklungs-Workflow unerlĂ€sslich. Cron-Jobs bieten einen leistungsstarken, zeitbasierten Job-Planer in Unix-Ă€hnlichen Betriebssystemen, der es Ihnen ermöglicht, Skripte oder Befehle automatisch in festgelegten Intervallen auszufĂŒhren.

Was ist ein Cron-Job?

Ein Cron-Job ist eine geplante Aufgabe, die in der Crontab (Cron-Tabelle) des Systems definiert ist und Befehle oder Skripte zu bestimmten Zeiten oder Intervallen ausfĂŒhrt. Cron wird hĂ€ufig verwendet, weil es:

  • Leichtgewichtig

  • Hochgradig anpassbar

  • In den meisten Linux-Distributionen integriert

HÀufige AnwendungsfÀlle

  • TĂ€gliche oder wöchentliche Datenbanksicherungen

  • AusfĂŒhren von PHP/Python-Skripten

  • Protokolldrehung und Bereinigung von temporĂ€ren Dateien

  • Versenden geplanter E-Mails

  • Aktualisieren von Daten-Caches oder Synchronisieren von Dateien

Schritt 1: Zugriff auf die Crontab

Um die Crontab Ihres Benutzers zu bearbeiten (ohne Root-Zugriff):

crontab -e
Um die Root-Crontab zu bearbeiten (erfordert sudo):
sudo crontab -e

Schritt 2: Cron-Syntax-Analyse

Jeder Cron-Job verwendet das folgende Format:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

Beispiel: FĂŒhren Sie ein Skript jeden Tag um 2 Uhr morgens aus

0 2 * * * /home/user/scripts/backup.sh

Schritt 3: Erstellen eines benutzerdefinierten Skripts

Angenommen, Sie möchten ein benutzerdefiniertes Python-Skript ausfĂŒhren. Zuerst erstellen Sie die Datei:

nano /home/user/scripts/cleanup.py

Beispielskript:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Machen Sie das Skript ausfĂŒhrbar:

chmod +x /home/user/scripts/cleanup.py

Schritt 4: FĂŒgen Sie den Cron-Job hinzu

Bearbeiten Sie Ihre Crontab und fĂŒgen Sie hinzu:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Dies:

  • FĂŒhrt das Skript tĂ€glich um 1:00 Uhr aus

  • Protokolliert die Ausgabe in /var/log/cleanup.log

BeispielanwendungsfÀlle

✅ Alle 10 Minuten ausfĂŒhren

*/10 * * * * /home/user/check_status.sh

✅ Nur montags um 3 Uhr morgens ausfĂŒhren

0 3 * * 1 /home/user/scripts/weekly_report.sh

Deaktivieren oder Entfernen eines Cron-Jobs

Deaktivieren Sie vorĂŒbergehend eine Zeile, indem Sie sie mit # kommentieren.

Um alle Jobs zu entfernen:

crontab -r

Benutzerdefinierte Cron-Jobs sind ein leistungsstarkes Werkzeug fĂŒr Automatisierung, Wartung und ZuverlĂ€ssigkeit. Egal, ob Sie einen persönlichen VPS verwalten, Backend-Skripte bereitstellen oder Produktions-Workloads ausfĂŒhren, das Beherrschen von Cron ermöglicht es Ihnen, wann und wie Aufgaben ausgefĂŒhrt werden – mĂŒhelos.