Написание файла crontab на Python с использованием модуля Plan
Во-первых, давайте разберемся, что такое файл crontab. Cron — это программная утилита, которая помогает нам планировать задачи в системах на базе Unix. По сути, вы сможете периодически запускать назначенные задачи, например, автоматическое резервное копирование системы в конце дня, автоматическое выключение или установку режима «Не беспокоить» в определенное время и другие подобные функции.
Эти «задачи» в cron обычно определяются в файле crontab, который по сути представляет собой текстовый файл, содержащий команды, которые необходимо выполнить.
Давайте теперь узнаем, как написать эти файлы crontab на Python, используя модуль плана!
Начиная
Прежде чем мы перейдем к реализации, давайте сначала разберемся с синтаксисом Cron. Синтаксис Cron состоит из 5 различных полей, разделенных пробелом.
Minute Hour Day Month Day_of_week
Minute (0-59), Hour (0-23), Day (1-31), Month (1-12) and Day of week (0-6).
Вы также можете использовать запятую для разделения значений и включения более одного значения. Дефис для проверки диапазона. Звездочка для всех возможных значений и, наконец, косая черта, чтобы указать все.
Например, 0 15 3,6 * * указывает cron запускать задачу в 15:00 3-го и 6-го числа каждого месяца.
Установка модуля плана Python
Хорошо, теперь, когда вы понимаете, как работает cron, давайте начнем с установки необходимого модуля plan.
Этот модуль не поставляется в комплекте с Python. Итак, мы будем загружать и устанавливать его с помощью менеджера пакетов pip.
Чтобы установить модуль плана, используйте следующую команду:
pip install plan
И теперь мы можем импортировать его в наш скрипт, используя следующую команду:
from plan import Plan
Все готово для создания файлов cron.
Создание crontab с использованием модуля плана
Давайте начнем с создания экземпляра класса, который будет содержать набор cron.
cron = Plan()
Далее мы можем просто пойти дальше и определить функции, сценарии или команды, которые вы хотите запускать автоматически.
Предположим, у нас есть сценарий, который автоматически отправляет письмо с напоминанием о ожидающих задачах каждые 5 часов. Допустим, этот скрипт находится по адресу «/projects/scripts/automation.py».
Мы также хотим, чтобы он печатал hello каждые 4 часа. Итак, как мы это сделаем?
У нас есть разные способы сделать это.
Мы можем использовать функцию cron.command() или функцию cron.script(). Обе эти команды помогут достичь нашей цели.
cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")
Теперь давайте запустим команды, используя команду cron.run() в нашей основной функции.
If __name__ == "__main__":
cron.run()
Вот и все! Теперь вы автоматизировали эти шаги и определили фиксированное время, в которое запускаются определенные сценарии.
Пример
Вот полная программа:
from plan import Plan
cron = Plan()
cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")
If __name__ == "__main__":
cron.run()
Заключение
Теперь вы понимаете, как автоматизировать запуск сценариев в фиксированное время. Используя это, вы можете автоматизировать проверку орфографии в своих проектах, автоматизировать резервное копирование системы в определенное время или даже получать отчет о покрытии вашего проекта каждый день.