Automazione dei lavori dati con cron

Elaborazione dei dati in Shell

Susan Sun

Data Person

Cos’è uno scheduler?

  • Uno scheduler esegue job a orari predefiniti
  • Scheduler commerciali: Airflow, Luigi, Rundeck, ecc.
  • Lo scheduler cron è
    • semplice
    • gratuito
    • personalizzabile
    • solo da riga di comando
    • nativo su macOS e Linux
Elaborazione dei dati in Shell

Cos’è cron?

Cron:

  • è uno scheduler basato sul tempo
  • è preinstallato su macOS e Unix
  • su Windows si installa con Cygwin o si usa Windows Task Scheduler
  • automatizza attività come manutenzione di sistema, script bash, job Python, ecc.
Elaborazione dei dati in Shell

Cos’è crontab?

Crontab è il file centrale che tiene traccia dei job di cron.

crontab -l
no crontab for <username>

Documentazione:

man crontab
Elaborazione dei dati in Shell

Aggiungere un job a crontab

Metodo 1: modifica crontab con un editor di testo (es. nano, Vim, Emacs)

Metodo 2: invia il comando dello scheduler in crontab con echo

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

Verifica che il job sia pianificato correttamente:

crontab -l
* * * * * python create_model.py
Elaborazione dei dati in Shell

Imparare a temporizzare un job cron

La pianificazione più frequente per i job cron è un minuto.

Scomposizione dei campi temporali di un job cron:

.---------------- minuto (0 - 59)
|  .------------- ora (0 - 23)
|  |  .---------- giorno del mese (1 - 31)
|  |  |  .------- mese (1 - 12) O jan,feb,mar,apr ...
|  |  |  |  .---- giorno della settimana (0 - 6) (Domenica=0 o 7) O sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Elaborazione dei dati in Shell

Imparare a temporizzare un job cron

*  *  *  *  * python create_model.py

Interpretazione:

  • Esegui ogni minuto di ogni ora, giorno, mese e giorno della settimana.

  • In breve, esegui ogni minuto

Approfondimenti:

Elaborazione dei dati in Shell

Let's practice!

Elaborazione dei dati in Shell

Preparing Video For Download...