Automatisering av datajobb med cron

Databehandling i kommandoraden

Susan Sun

Data Person

Vad är en schemaläggare?

  • En schemaläggare kör jobb enligt ett fördefinierat schema
  • Kommersiella schemaläggare: Airflow, Luigi, Rundeck m.fl.
  • cron är
    • enkelt
    • gratis
    • anpassningsbart
    • helt kommandoradsbaserat
    • inbyggt i MacOS och Linux
Databehandling i kommandoraden

Vad är cron?

Cron:

  • är en tidsbaserad jobbschemaläggare
  • är förinstallerat i MacOS och Unix
  • kan installeras i Windows via Cygwin eller ersättas med Windows Task Scheduler
  • används för att automatisera jobb som systemunderhåll, bash-skript, Python-jobb m.m.
Databehandling i kommandoraden

Vad är crontab?

Crontab är en central fil för att hålla reda på cron-jobb.

crontab -l
no crontab for <username>

Dokumentation:

man crontab
Databehandling i kommandoraden

Lägg till ett jobb i crontab

Metod 1: redigera crontab med en textredigerare (t.ex. nano, Vim, Emacs)

Metod 2: skicka schemaläggningskommandot till crontab med echo

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

Kontrollera att jobbet är korrekt schemalagt:

crontab -l
* * * * * python create_model.py
Databehandling i kommandoraden

Tidsstyrning av cron-jobb

Den högsta frekvensen för cron-jobb är en minut.

Tidskomponenterna i ett cron-jobb:

.---------------- 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 ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Databehandling i kommandoraden

Tidsstyrning av cron-jobb

*  *  *  *  * python create_model.py

Tolkning:

  • Kör varje minut, varje timme, varje dag i månaden, varje månad och varje veckodag.

  • Kortfattat: kör varje minut

Fler resurser:

Databehandling i kommandoraden

Nu kör vi en övning!

Databehandling i kommandoraden

Preparing Video For Download...