Автор оригинала: Pankaj Kumar.
Давайте сегодня поговорим об интересном модуле планирования – Python crontab. Следует отметить, что поддержка cron совершенно отсутствует в POSIX, то есть в операционной системе Windows. Таким образом, в примерах в этой статье используется Linux.
Введение в Python crontab
Если вы работали с модулем datetime или модулем sched , можно с уверенностью сказать, что вы хотели запланировать оповещение в какой-то момент времени.
Если вы размышляли о том, как будет продолжаться расширение такой функции, вы также, возможно, пришли к выводу, что можно написать сценарий, который может развертывать одно и то же событие постоянно и повторяющимся образом.
Упрощая все это, вы, возможно, пришли к идее или вопросу: Как насчет того, чтобы автоматизировать свою задачу?
Что ж, хорошие новости.
Это легко возможно! cron – это функция, которая позволяет планировать команды и, таким образом, помогает выполнять команды с определенным интервалом или временем.
Что случилось?
Функция, которая существует в UNIX-подобной операционной системе,-это планировщик заданий на основе времени, то есть cron .
Он используется в средах разработки программного обеспечения для планирования заданий, которые могут выполняться периодически, в фиксированное время, даты или интервалы, которые вы можете настроить для себя.
Синтаксис Python crontab
Для объяснения Cron потребуется целая статья, поэтому вот статья , которая может помочь вам получить представление о том, с чем мы будем здесь работать.
Мы будем работать с crontab, который содержит все задания, которые мы запланировали или собираемся запланировать.
Если вы столкнулись с какой-либо проблемой при создании задачи cron, вам следует попробовать несколько онлайн-инструментов, которые помогут вам разобраться в синтаксисе. Проверьте crontab.guru , чтобы создать свою задачу на случай, если у вас возникнут какие-либо проблемы.
Работа с модулем Python crontab
Модуль python-crontab
позволяет значительно упростить процесс создания заданий cron.
Он предоставляет нам простой класс, принимающий прямой ввод, без необходимости работать с синтаксисом cron вообще.
Установка python-crontab
Чтобы работать с cron и crontab в Python, нам сначала нужно установить необходимый модуль, это можно сделать с помощью команды pip package manager в оболочке.
pip install python-crontab
Это должно автоматически установить необходимый модуль, и как только вы закончите с ним, мы должны быть готовы работать с ним!
Использование python-crontab
Давайте перейдем прямо к работе модуля и запланируем нашу первую задачу.
1.0 Настройка
Прежде чем мы начнем работать с выражениями и задачами в Crontab, нам сначала нужно будет импортировать необходимый модуль.
# Importing the CronTab class from the module from crontab import CronTab
1.1 Создание объекта
Чтобы работать с Python crontab , нам нужно настроить объект для работы с созданием заданий и их повторением.
# Creating an object from the class ## Using the root user cron = CronTab(user="root") ## Using the current user my_cron = CronTab(user=True) # Creating an object from the class into a file file_cron = CronTab(tabfile="filename.tab")
1.2 Работа с заданиями
Используя модуль python-crontab
, мы можем создавать задания и указывать, когда мы хотим, чтобы они повторялись, и через какой интервал они должны повторяться.
Этот модуль упрощает большую часть создания этих задач и превращает их из функционального ввода в кронтаб.
# Creating a new job job = cron.new(command='echo hello_world') # Setting up restrictions for the job ## The job takes place once every 5 minutes job.minute.every(5) ## The job takes place once every four hours job.hour.every(4) ## The job takes place on the 4th, 5th, and 6th day of the week. job.day.on(4, 5, 6) # Clearing the restrictions of a job job.clear()
Имейте в виду, что каждый раз, когда вы меняете ограничение на задание, задание стирается и заменяет себя новым ограничением.
1.3 Запись в файл crontab
В конце концов, мы создаем эти задания, чтобы предоставить нам форму cron данных ограничений, и для того, чтобы записать в файл, мы должны вручную приказать объекту записать себя в файл.
Это можно выполнить с помощью простой команды в конце настройки ограничений задания.
cron.write()
Оглядываясь назад, вы обнаружите, что cron-это имя нашего объекта, созданного из класса CronTab
.
1.4 Файл CronTab
Выполнение файла Python каждый раз, когда вы устанавливаете новое ограничение, чистый CronTab должен выглядеть примерно так.
*/5 * * * * echo hello_world */5 */4 * * * echo hello_world */5 */4 4,5,6 * * echo hello_world
Вывод
Работа с cron – это большой шаг вперед в автоматизации процессов, и если вы хотите изучить модули, которые могут помочь в определении времени и даты для настройки задач и заданий, вам могут быть интересны другие наши статьи!
Вот работа с dateutil , psutil , и если вы пытаетесь автоматизировать набор данных по какой-либо причине и вам нужна отправная точка, панды !