Руководство для начинающих по планированию заданий Cron

Запланированные задания являются неотъемлемой частью веб-приложений. Чтобы обработать невыполненные задачи, запустить действия по очистке или что-то еще. Запланированные задания находят эффективное применение в большинстве приложений корпоративного уровня.

Программные инструменты использовались для ежедневного планирования заданий в нескольких корпоративных проектах, в которых я работал. Я также разработал серверные приложения, используя SpringBoot и планировщик SpringBoot для запуска ежедневных задач каждые три часа.

Недавно я столкнулся с концепцией заданий Cron. Любопытно, я прочитал несколько статей об этом и хотел запланировать пробное задание, чтобы проверить его. Оказывается, я был единственным, кто не знал об этом планировщике.

Эта статья предназначена для таких людей, как я, которые еще не пробовали планировать задание Cron.

Что такое Cron и Cron Job?

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

Cron — это демон.

Демон — это тип программы, которая работает в фоновом режиме. Вместо пользователя этой программой управляют события и условия. Примерами таких действий являются определенное время, конкретная дата, изменения в определенном каталоге и т. д.

Как запланировать задание Cron

  1. Создайте каталог (я создал его в своей пользовательской папке, но в идеале вы можете сделать это в корне)
mkdir ~/.scripts

2. Создайте файл для написания сценария оболочки

touch test.sh

Далее предоставьте к нему доступ для модификации

chmod u+x ./test.sh

3. Добавьте этот контент в файл test.sh (команда редактирования — vi test.sh)

#!/bin/bash
echo "Starts here"
echo Hello >> test.txt
echo "Done"

Приведенный выше сценарий напечатает «Начинается здесь» и «Готово» в файле stdout.log, тогда как «Hello» будет напечатано в файле test.txt.

4. Чтобы запустить вышеуказанный скрипт, нам нужно запланировать его в crontab.

Определение с сайта computerhope.com

Команда crontab используется для просмотра или редактирования таблицы команд, запускаемых cron. Каждый пользователь в вашей системе может иметь персональный crontab.

Чтобы открыть редактор для записи в crontab, используйте эту команду:

crontab -e

5. Добавьте следующую запись в файл

* * * * * cd ~/.scripts && ./test.sh >/tmp/stdout.log 2>/tmp/stderr.log

Здесь пять звездочек обозначают следующие данные в таком порядке:
1 — минуты (0–59)
2 — часы (0–23)
3 — день месяца (1–31) )
4 — месяц(1–12)
5 — день недели(0–6; с воскресенья по субботу)

Отсутствие значения означает, что задание будет выполняться каждую минуту. Шестьдесят секунд — это наименьшее возможное значение, которое мы можем установить в планировщике.

Чтобы убедиться, что задание запланировано, используйте команду — crontab -l

6. Проверьте вывод в файле test.txt.

cat test.txt

Файл test.txt должен иметь аналогичный вывод через несколько минут.

7. Проверьте файл stdout.log (этот файл находится в корневой папке)

cat stdout.log

8. После проверки не забудьте удалить задание cron. Используйте команду

crontab -e

и удалить содержимое.

Удалите также каталог .scripts, используя

rm -r .scripts

Заключение

Мы только что научились планировать задание cron на машине Mac/Linux. Эти задания выполняются на компьютере, для которого они запланированы; это не будет идеальным решением в распределенной системе.

У каждого провайдера есть свои службы планировщика для запуска запланированных заданий в облачных приложениях.