Automatiza trabajos de datos con cron

Procesamiento de datos en Shell

Susan Sun

Data Person

¿Qué es un scheduler?

  • Un scheduler ejecuta trabajos en un horario predefinido
  • Schedulers comerciales: Airflow, Luigi, Rundeck, etc.
  • El scheduler cron es
    • simple
    • gratuito
    • personalizable
    • solo por línea de comandos
    • nativo en MacOS y Linux
Procesamiento de datos en Shell

¿Qué es cron?

Cron:

  • es un programador de tareas basado en tiempo
  • viene preinstalado en MacOS y Unix
  • se puede instalar en Windows con Cygwin o sustituir por el Programador de tareas de Windows
  • se usa para automatizar tareas como mantenimiento del sistema, scripts bash, trabajos de Python, etc.
Procesamiento de datos en Shell

¿Qué es crontab?

Crontab es el archivo central que registra los cron jobs.

crontab -l
no crontab for <username>

Documentación:

man crontab
Procesamiento de datos en Shell

Añadir un job a crontab

Método 1: modifica crontab con un editor de texto (p. ej., nano, Vim, Emacs)

Método 2: envía el comando al crontab con echo

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

Comprueba si el job quedó programado:

crontab -l
* * * * * python create_model.py
Procesamiento de datos en Shell

Aprende a programar un cron job

La programación más frecuente para cron jobs es de un minuto.

Desglose del tiempo en un cron job:

.---------------- minuto (0 - 59)
|  .------------- hora (0 - 23)
|  |  .---------- día del mes (1 - 31)
|  |  |  .------- mes (1 - 12) O ene,feb,mar,abr ...
|  |  |  |  .---- día de la semana (0 - 6) (domingo=0 o 7) O dom,lun,mar,mié ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Procesamiento de datos en Shell

Aprende a programar un cron job

*  *  *  *  * python create_model.py

Interpretación:

  • Ejecuta cada minuto de cada hora, día, mes y día de la semana.

  • En resumen, ejecuta cada minuto

Más recursos:

Procesamiento de datos en Shell

¡Vamos a practicar!

Procesamiento de datos en Shell

Preparing Video For Download...