Автоматизация задач с помощью cron

Обработка данных в командной строке

Susan Sun

Data Person

Что такое планировщик?

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

Что такое cron?

Cron:

  • планировщик задач на основе времени
  • предустановлен в MacOS и Unix
  • устанавливается в Windows через Cygwin или заменяется Планировщиком заданий Windows
  • используется для автоматизации задач: обслуживание системы, bash-скрипты, Python-задачи и др.
Обработка данных в командной строке

Что такое crontab?

Crontab — центральный файл для хранения заданий cron.

crontab -l
no crontab for <username>

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

man crontab
Обработка данных в командной строке

Добавление задания в crontab

Способ 1: изменить crontab в текстовом редакторе (например, nano, Vim, Emacs)

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

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

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

crontab -l
* * * * * python create_model.py
Обработка данных в командной строке

Настройка расписания cron

Минимальный интервал для заданий cron — одна минута.

Структура временного компонента задания cron:

.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Обработка данных в командной строке

Настройка расписания cron

*  *  *  *  * python create_model.py

Интерпретация:

  • Запускать каждую минуту каждого часа каждого дня каждого месяца и каждого дня недели.

  • Короче говоря, запускать каждую минуту

Дополнительные ресурсы:

  • Используйте https://crontab.guru/, чтобы изучить другие варианты расписания cron
Обработка данных в командной строке

Давайте потренируемся!

Обработка данных в командной строке

Preparing Video For Download...