Руководство для начинающих по планированию заданий Cron
Запланированные задания являются неотъемлемой частью веб-приложений. Чтобы обработать невыполненные задачи, запустить действия по очистке или что-то еще. Запланированные задания находят эффективное применение в большинстве приложений корпоративного уровня.
Программные инструменты использовались для ежедневного планирования заданий в нескольких корпоративных проектах, в которых я работал. Я также разработал серверные приложения, используя SpringBoot и планировщик SpringBoot для запуска ежедневных задач каждые три часа.
Недавно я столкнулся с концепцией заданий Cron. Любопытно, я прочитал несколько статей об этом и хотел запланировать пробное задание, чтобы проверить его. Оказывается, я был единственным, кто не знал об этом планировщике.
Эта статья предназначена для таких людей, как я, которые еще не пробовали планировать задание Cron.
Что такое Cron и Cron Job?
Unix-подобные операционные системы предоставляют утилиту командной строки под названием Cron. Мы можем использовать эту утилиту для планирования задач на машине. Задачи или задания, запланированные в утилите Cron, называются заданиями Cron.
Cron — это демон.
Демон — это тип программы, которая работает в фоновом режиме. Вместо пользователя этой программой управляют события и условия. Примерами таких действий являются определенное время, конкретная дата, изменения в определенном каталоге и т. д.
Как запланировать задание Cron
- Создайте каталог (я создал его в своей пользовательской папке, но в идеале вы можете сделать это в корне)
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. Эти задания выполняются на компьютере, для которого они запланированы; это не будет идеальным решением в распределенной системе.
У каждого провайдера есть свои службы планировщика для запуска запланированных заданий в облачных приложениях.