Крон Джобс

Демон cron — это длительный процесс, который выполняет команды в определенные дни и часы. Вы можете использовать это для планирования действий, как разовых событий, так и повторяющихся задач.

Если вы используете Mac (или Linux), вы можете использовать crontab — инструмент планирования, который будет запускать задания (скрипты) через равные промежутки времени.

В Microsoft Windows задания cron называются запланированными заданиями. Их можно добавить через пользовательский интерфейс планировщика заданий Windows, с помощью PowerShell или с помощью schtasks.exe.

Crontab означает «cron table», потому что он использует планировщик заданий cron для выполнения задач; Сам cron назван в честь хроноса, греческого слова, обозначающего время.

Формат строки Cron time состоит из пяти полей, которые Cron преобразует в интервал времени. Затем Cron использует этот интервал, чтобы определить, как часто следует запускать соответствующую команду. Например, строка Cron time из 0 10 1 * * выполняет команду 1 числа каждого месяца в 10:00 утра. УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ.

* = всегда

Это подстановочный знак для каждой части выражения расписания cron. Таким образом, * * * * * означает каждую минуту каждого часа каждого дня каждого месяца и каждого дня недели.

Чтобы найти местоположение вашего файла crontab, вы можете запустить следующую команду:

Вариант 1. Как только вы нашли расположение файла, вы можете открыть файл crontab с помощью приведенной ниже команды:

Вариант 2. Вы можете просто открыть файл в редакторе nano с помощью приведенной ниже команды (вам не нужно искать файл для этой команды):

В отличие от vi, nano — это немодальный текстовый редактор на основе терминала, что означает, что вы можете начать вводить и редактировать текст сразу после открытия файла. nano идеально подходит для внесения небольших изменений в существующие файлы конфигурации или для написания коротких текстовых файлов.

Чтобы увидеть список ваших активных заданий crontab, используйте следующую команду:

Давайте рассмотрим один пример. Я использую комбинацию Airflow и Cron Jobs для автоматизации своих моделей машинного обучения. В этом примере у меня есть сценарий run_script.sh, который я хочу выполнять каждый день месяца в 04:00. УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ.

Файл SH — это сценарий, запрограммированный для bash, типа оболочки Unix (Bourne-Again SHell). Он содержит инструкции, написанные на языке Bash, и может быть выполнен путем ввода текстовых команд в интерфейсе командной строки оболочки.

Сценарий сначала активирует виртуальную среду ml_env и записывает всю информацию в файл bash.log; то есть когда скрипт запустился и когда он закончился. Поскольку сценарий my_python_script.py генерирует несколько текстовых файлов, я затем перебираю все текстовые файлы, удаляю из них ненужные и преобразовываю их в формат .csv.

Наконец, я добавляю приведенную ниже строку в свой файл crontab для автоматического выполнения и run_script.sh каждый день, чтобы я мог автоматизировать все свои повседневные задачи.

Прежде чем идти, поделитесь и подпишитесь на мой канал, если вы считаете, что этот пост был полезен. Я очень ценю вашу поддержку. Спасибо!

Подпишитесь на меня в:Техфитлаб 🔖 LinkedIn 🔖 Instagram 🔖 Twitter