Cron — это программная утилита, которая позволяет нам планировать задачи (cronjobs) для периодического запуска, в фиксированное время или через заранее определенные интервалы.

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

В этой статье я расскажу об основах настройки и запуска cronjobs. Хотя я использую систему macOS (Mojave), примеры должны работать в системах Linux при условии, что установлены все необходимые зависимости.

Если вы работаете в системе Linux, в этой статье предполагается, что у вас уже установлены все зависимости.

Отображение cronjobs

Чтобы отобразить текущие crobjobs, откройте терминал и введите следующую команду:

crontab -l

Если вы никогда не делали этого раньше, вывод должен быть пустым. Давайте изменим это, фактически создав сценарий оболочки, который будет содержать задание, которое будет выполняться периодически.

Создание cronjobs

Теперь давайте создадим cronjob. Для простоты мы создадим простой bash-скрипт, который печатает «Hello, world!» в файл. Создайте сценарий bash в выбранном вами каталоге со следующим кодом:

#!/bin/bash
echo "Hello, world" >> ~/Desktop/job.txt

Сохраните этот скрипт как «job.sh» и откройте окно терминала в каталоге скрипта. Запустите скрипт с помощью следующей команды:

bash job.sh

Новый файл с именем «job.txt» должен был появиться в каталоге с ожидаемым результатом. Запустите файл несколько раз, и вы заметите, что скрипт добавляется к файлу.

Запускать это вручную каждый раз не кажется практичным. Итак, давайте воспользуемся cron, чтобы этот процесс запускался автоматически через определенные промежутки времени.

Выполнение cronjob

Прежде чем мы сможем заставить cron выполнять этот скрипт bash в фоновом режиме, мы сначала должны убедиться, что скрипт является исполняемым. Мы можем добиться этого с помощью следующей команды:

chmod +x job.sh

Убедитесь, что вы запускаете эту команду в том же каталоге, что и скрипт. Если нет, убедитесь, что вы указали путь к скрипту.

Теперь мы можем добавить задание в crontab. Используя следующую команду:

crontab -e

Это переводит нас в режим редактирования crontab. Если вашим редактором по умолчанию является Vi, нажмите «i», чтобы войти в режим вставки. Теперь введите следующую строку:

* * * * * ~/Desktop/job.sh

Вторая часть этой команды «~/Desktop/job.sh» — это путь к сценарию оболочки, который мы хотим выполнить. В моем случае это находится в папке на рабочем столе. Обязательно укажите точный путь, по которому находится ваш скрипт.

Обратите внимание на «* * * * *» в начале оператора. Это фактическое условие расписания для выполнения задания.

Каждая позиция слева направо представляет минуты, часы, день месяца, месяц и день недели соответственно. Звездочка (*) просто означает «каждый». Итак, в этом случае мы выполняем эту работу каждую минуту каждого часа каждого дня месяца, каждого месяца и каждого дня недели.

Вот отличная статья с подробным объяснением форматирования команд crontab.

А пока давайте сохраним это, нажав клавишу escape, а затем набрав «: wq», чтобы сохранить и выйти.

Вы должны заметить, что файл теперь добавляется каждую минуту. Отлично работает cronjob!

Вывод

Это ни в коем случае не было углубленным взглядом на cronjobs и их силу. Тем не менее, я думаю, что это служит достаточным начальным руководством по их настройке. В следующей статье я покажу, как выполнять скрипты Python, отслеживая вывод терминала.

Если вам понравилась эта статья, рассмотрите возможность подписаться на мой личный веб-сайт для раннего доступа к моему контенту до того, как он будет опубликован на Medium (не волнуйтесь, он по-прежнему бесплатен и не содержит раздражающих всплывающих окон!). Кроме того, не стесняйтесь комментировать этот пост. Буду рад услышать ваше мнение!

Первоначально опубликовано на https://kelvinmwinuka.com 8 октября 2020 г.