Datenjobs mit cron automatisieren

Datenverarbeitung in der Shell

Susan Sun

Data Person

Was ist ein Scheduler?

  • Scheduler führen Jobs nach festem Zeitplan aus
  • Kommerzielle Scheduler: Airflow, Luigi, Rundeck usw.
  • Der cron-Scheduler ist
    • einfach
    • kostenlos
    • anpassbar
    • rein über die Kommandozeile
    • nativ auf MacOS und Linux
Datenverarbeitung in der Shell

Was ist cron?

Cron:

  • zeitbasierter Job-Scheduler
  • vorinstalliert auf MacOS, Unix
  • unter Windows per Cygwin installierbar oder durch Windows Task Scheduler ersetzbar
  • dient zur Automatisierung von Aufgaben wie Systemwartung, Bash-Skripten, Python-Jobs usw.
Datenverarbeitung in der Shell

Was ist crontab?

Crontab ist die zentrale Datei zur Verwaltung von cron-Jobs.

crontab -l
no crontab for <username>

Dokumentation:

man crontab
Datenverarbeitung in der Shell

Einen Job zur crontab hinzufügen

Methode 1: crontab mit einem Texteditor bearbeiten (z. B. nano, Vim, Emacs)

Methode 2: den Scheduler-Befehl in crontab echoen

echo "* * * * * python create_model.py" | crontab

Prüfe, ob der Job richtig eingeplant ist:

crontab -l
* * * * * python create_model.py
Datenverarbeitung in der Shell

Cron-Jobs timen lernen

Das häufigste Intervall für cron-Jobs ist eine Minute.

Aufschlüsselung der Zeitangaben eines cron-Jobs:

.---------------- Minute (0 - 59)
|  .------------- Stunde (0 - 23)
|  |  .---------- Tag im Monat (1 - 31)
|  |  |  .------- Monat (1 - 12) ODER jan,feb,mar,apr ...
|  |  |  |  .---- Wochentag (0 - 6) (Sonntag=0 oder 7) ODER sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Datenverarbeitung in der Shell

Cron-Jobs timen lernen

*  *  *  *  * python create_model.py

Interpretation:

  • Jede Minute jeder Stunde an jedem Tag in jedem Monat und an jedem Wochentag ausführen.

  • Kurz: jede Minute ausführen

Weitere Ressourcen:

Datenverarbeitung in der Shell

Lass uns üben!

Datenverarbeitung in der Shell

Preparing Video For Download...