Automatiseren van datataken met cron

Gegevens verwerken in de Shell

Susan Sun

Data Person

Wat is een scheduler?

  • Een scheduler voert jobs uit volgens een vooraf ingesteld schema
  • Commerciële schedulers: Airflow, Luigi, Rundeck, enz.
  • cron-scheduler is
    • simpel
    • gratis
    • aanpasbaar
    • puur command-line
    • native op macOS en Linux
Gegevens verwerken in de Shell

Wat is cron?

Cron:

  • is een tijdgestuurde job-scheduler
  • staat vooraf geïnstalleerd op macOS, Unix
  • kan op Windows via Cygwin of vervangen door Windows Taakplanner
  • automatiseert jobs zoals systeemonderhoud, bash-scripts, Python-jobs, enz.
Gegevens verwerken in de Shell

Wat is crontab?

Crontab is het centrale bestand om cronjobs bij te houden.

crontab -l
no crontab for <username>

Documentatie:

man crontab
Gegevens verwerken in de Shell

Een job toevoegen aan crontab

Methode 1: bewerk crontab met een teksteditor (bijv. nano, Vim, Emacs)

Methode 2: echo het scheduler-commando in crontab

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

Check of de job goed gepland is:

crontab -l
* * * * * python create_model.py
Gegevens verwerken in de Shell

Een cronjob timen

Het meest gebruikte schema voor cronjobs is één minuut.

De tijdsvelden van een cronjob:

.---------------- minuut (0 - 59)
|  .------------- uur (0 - 23)
|  |  .---------- dag van maand (1 - 31)
|  |  |  .------- maand (1 - 12) OF jan,feb,mar,apr ...
|  |  |  |  .---- dag van week (0 - 6) (zondag=0 of 7) OF sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Gegevens verwerken in de Shell

Een cronjob timen

*  *  *  *  * python create_model.py

Uitleg:

  • Draai elke minuut van elk uur, elke dag, elke maand en elke dag van de week.

  • Kort: elke minuut draaien

Meer bronnen:

Gegevens verwerken in de Shell

Laten we oefenen!

Gegevens verwerken in de Shell

Preparing Video For Download...