Führen Sie das Python-Skript über Crontab aus

Fariba Laiq 15 Februar 2024
  1. Crontab unter Linux/Unix/Solaris
  2. Führen Sie Python-Skripte über Crontab aus
Führen Sie das Python-Skript über Crontab aus

Meistens befinden wir uns in Situationen, in denen Prozesse aus Gründen der Effizienz und unserer Vernunft automatisiert werden müssen. Das kann alles sein, von einer regelmäßigen E-Mail an die Mitarbeiter bis hin zur Erneuerung einer Lizenz für eine Anwendung alle drei Monate.

Crontab wird von der Cron-Tabelle abgeleitet. Cron ist ein Automatisierungsprogramm, das von den Betriebssystemen Unix, Solaris und Linux angeboten wird und bei der Automatisierung hilft.

In diesem Artikel untersuchen wir Crontab und wie wir damit ein Python-Skript ausführen können.

Crontab unter Linux/Unix/Solaris

Cron ist ein Daemon, der ausgeführt wird, wenn ein System von den /etc/init.d-Skripten bootet. Bei Bedarf können wir den Daemon auch mit dem Skript init oder über crond starten/neu starten oder stoppen, was im Wesentlichen ein Befehlsdienst ist, der in Linux und seinen anderen Varianten zu finden ist.

Eine Crontab- oder Cron-Tabelle ist eine Datei, die eine Vielzahl von Befehlen in Form einer Liste enthält. Diese Befehle oder Cron-Einträge werden so eingestellt, dass sie zu bestimmten Zeiten ausgeführt werden.

Die Befehle in dieser Datei, die allgemein als cronjobsCrontabs bekannt sind, werden normalerweise zum Verwalten, Warten oder Verwalten eines Systems verwendet. Sie können auch für andere Aufgaben verwendet werden, die regelmäßig erforderlich sind, z. B. Backups.

Jeder Benutzer kann ein eigenes Crontab haben.

Jede Crontab-Datei hat fünf Felder, die Minuten, Stunden, Tag des Monats (Datum), Monat, Tag angeben, und schließlich folgt auf all dies der Befehl, der zu der zuvor angegebenen Zeit ausgeführt werden soll.

Einige Tipps zur effizienten Wartung eines Crontab sind:

  1. Fügen Sie ein Leerzeichen ein, um jedes Feld zu trennen.
  2. Fügen Sie ein Komma ein, um mehrere Werte zu trennen.
  3. Fügen Sie einen Bindestrich (-) ein, um einen Wertebereich anzugeben.
  4. Fügen Sie ein Sternchen (*) ein, um alle möglichen Werte für das Feld einzuschließen.
  5. Verwenden Sie eine Raute (#) am Anfang einer Zeile, um Kommentare hinzuzufügen oder Leerzeilen in die Datei einzufügen.

Cron-Job oder Cron-Zeitplan in Linux/Unix/Solaris

Ein Cron-Job oder Cron-Zeitplan ist ein bestimmter Satz von Anweisungen oder Befehlen, die die Uhrzeit und den Tag für die Ausführung der Befehle angeben. Innerhalb einer Cron-Tabelle können mehrere Ausführungsbefehle vorhanden sein.

Führen Sie Python-Skripte über Crontab aus

Ein Python-Skript kann mit Hilfe einer Crontab ausgeführt werden, indem Sie diesen einfachen Schritten folgen:

  • Suchen oder definieren Sie das Python-Skript, das Sie ausführen möchten.
  • Führen Sie in dem Terminal, mit dem Sie arbeiten möchten, den Befehl crontab -e aus.
  • Jetzt müssen Sie i drücken, um in den Bearbeitungsmodus zu gelangen.
  • Geben Sie den geplanten Befehl ein, in dem Sie den Pfad des Python-Skripts angeben können, das Sie ausführen möchten.
  • Sie können die Escape-Taste drücken, um den Bearbeitungsmodus zu verlassen.
  • Verwenden Sie den Befehl :wq, um eine Crontab zu erstellen und zu schreiben.

Beispiele für Crontab

Hier sind einige Beispiele dafür, wie ein Crontab für verschiedene Szenarien aussehen würde:

  1. Tägliches Entfernen einiger temporärer Dateien zu einer bestimmten Zeit von einem bestimmten Ort oder Pfad auf dem Computer:

    30 18 * * * rm /home/someuser/tmp/*
    
  2. Einige Befehle, die jeden 7. Tag ausgeführt werden:

    0 0 */7 * * shell_command_here
    
  3. Jede Minute ein Skript im System ausführen:

    * * * * * cd/Users/name/Automation && /usr/bin/python testing_crontabs.py
    

Lassen Sie uns nun ein eigenes Skript erstellen und es über Crontab ausführen lassen. Im Folgenden finden Sie das Python-Skript, das wir für diesen Artikel verwenden werden:

Beispielcode:

#! /usr/bin/python3

import sys
from datetime import datetime


def main(args):
    result = 1
    for arg in args[1:]:
        result *= int(arg)

    print(f"Result: {result} on: {datetime.now()}.")


if __name__ == "__main__":
    main(sys.argv)

Ausgang:

Crontab-Python-Skript

Nun führen wir im Terminal unserer Wahl den Befehl sudo chmod +x main.py aus, um die Datei ausführbar zu machen.

Führen Sie nun im Terminal crontab -e aus, und wenn Sie aufgefordert werden, einen Editor aus den bereitgestellten Optionen auszuwählen, wählen wir für diesen Artikel nano und fügen den folgenden Cron-Befehl hinzu:

*/2 * * * * /home/$(USER)/myscript.py 1 2 3 4 5 >> /home/$(USER)/outputfile.txt

Wir müssen USER durch den Benutzernamen für unsere spezifische Maschine ersetzen. Speichern und beenden Sie den Editor, und unser Crontab ist jetzt bereit und funktioniert.

Woher wissen wir? Laut unserer Crontab soll das Skript alle zwei Minuten laufen.

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Python Cron