Автоматизація завдань з даними за допомогою cron

Опрацювання даних у Shell

Susan Sun

Data Person

Що таке планувальник?

  • Планувальник запускає завдання за заздалегідь заданим розкладом
  • Комерційні планувальники: Airflow, Luigi, Rundeck тощо
  • Планувальник cron є
    • простим
    • безплатним
    • гнучким
    • суто командним рядком
    • рідним для MacOS і Linux
Опрацювання даних у Shell

Що таке cron?

Cron:

  • це планувальник завдань, що працює за часом
  • постачається попередньо встановленим у MacOS, Unix
  • у Windows встановлюється через Cygwin або замінюється Windows Task Scheduler
  • використовується для автоматизації завдань: обслуговування системи, bash-скрипти, Python-джоби тощо
Опрацювання даних у Shell

Що таке crontab?

Crontab — це центральний файл для обліку cron-завдань.

crontab -l
no crontab for <username>

Документація:

man crontab
Опрацювання даних у Shell

Додайте завдання до crontab

Спосіб 1: редагуйте crontab у текстовому редакторі (наприклад, nano, Vim, Emacs)

Спосіб 2: передайте команду розкладу в crontab через echo

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

Перевірте, чи завдання заплановане правильно:

crontab -l
* * * * * python create_model.py
Опрацювання даних у Shell

Як задати час для cron-завдання

Найчастіший інтервал для cron-завдань — одна хвилина.

Часові поля cron-завдання:

.---------------- хвилина (0 - 59)
|  .------------- година (0 - 23)
|  |  .---------- день місяця (1 - 31)
|  |  |  .------- місяць (1 - 12) АБО jan,feb,mar,apr ...
|  |  |  |  .---- день тижня (0 - 6) (неділя=0 або 7) АБО sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Опрацювання даних у Shell

Як задати час для cron-завдання

*  *  *  *  * python create_model.py

Тлумачення:

  • Запускайте щохвилини кожної години, щодня, щомісяця і щодня тижня.

  • Коротко: запуск щохвилини

Додаткові ресурси:

  • Скористайтеся https://crontab.guru/ для інших прикладів розкладу cron-завдань
Опрацювання даних у Shell

Давайте потренуємось!

Опрацювання даних у Shell

Preparing Video For Download...