Automação de trabalhos de dados com cron

Processamento de Dados no Shell

Susan Sun

Data Person

O que é um agendador?

  • Um agendador executa jobs em um horário pré-definido
  • Agendadores comerciais: Airflow, Luigi, Rundeck etc.
  • O agendador cron é
    • simples
    • gratuito
    • personalizável
    • somente linha de comando
    • nativo no MacOS e Linux
Processamento de Dados no Shell

O que é cron?

Cron:

  • é um agendador de jobs baseado em tempo
  • vem pré-instalado no MacOS e Unix
  • pode ser instalado no Windows via Cygwin ou substituído pelo Windows Task Scheduler
  • é usado para automatizar jobs como manutenção do sistema, scripts bash, jobs em Python etc.
Processamento de Dados no Shell

O que é crontab?

Crontab é o arquivo central para registrar os cron jobs.

crontab -l
no crontab for <username>

Documentação:

man crontab
Processamento de Dados no Shell

Adicionar um job ao crontab

Método 1: editar o crontab com um editor de texto (ex.: nano, Vim, Emacs)

Método 2: enviar o comando do agendador para o crontab com echo

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

Verifique se o job foi agendado corretamente:

crontab -l
* * * * * python create_model.py
Processamento de Dados no Shell

Aprendendo a cronometrar um cron job

A frequência mais comum para cron jobs é de um minuto.

Detalhando o componente de tempo de um cron job:

.---------------- minuto (0 - 59)
|  .------------- hora (0 - 23)
|  |  .---------- dia do mês (1 - 31)
|  |  |  .------- mês (1 - 12) OU jan,feb,mar,apr ...
|  |  |  |  .---- dia da semana (0 - 6) (Domingo=0 ou 7) OU sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Processamento de Dados no Shell

Aprendendo a cronometrar um cron job

*  *  *  *  * python create_model.py

Interpretação:

  • Executar a cada minuto de cada hora de cada dia de cada mês e de cada dia da semana.

  • Em resumo, executar a cada minuto

Recursos adicionais:

Processamento de Dados no Shell

Vamos praticar!

Processamento de Dados no Shell

Preparing Video For Download...