Как настроить cron в Linux

Автоматизация многочисленных задач и процессов в Linux – это благо, к которому часто прибегают системные администраторы. Но так как современные пользователи тоже не любят отставать и пасти задних, подобные инструменты обретают расширенную актуальность. Да, достаточно быть новичком и неопытным владельцем дистрибутива, чтобы обеспечить себе те неоспоримые плюсы, которые может подарить автоматизация. Но для этих целей необходимо разобраться, как настраивать cron.

Что такое cron в операционной системе Линукс

Cron представляет собой удобный планировщик с гибкими настройками. Пользователь по своему решению определяет, когда будет срабатывать скрипт (каждый час, каждый день, каждую неделю и так далее).

Планировщик может функционировать при любом заданном интервале – это не принципиальный вопрос.

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

Важно! Разработчик утилиты Cron – Кен Томпсон. Из исторической справки известно, что продукт был создан в начале 70-х годов. В то время утилита стала базовым ПО для мощной операционной системы Unix. Любопытно, что к нашему времени мало что поменялось. Cron до сих пор остаётся востребованной специализированной утилитой.

Параметры

Чтобы посмотреть, у кого из пользователей Линукс есть доступ к планировщику Cron, необходимо открыть файл:

/etc/cron.allow

Чтобы найти список пользователей Линукс, у которых нет доступа к утилите, нужно открыть файл:

/etc/cron.deny

В таблице Cron отображается указанное время запуска (в первых пяти колонках), и само действие (в 6-й колонке).

Запуск с заданным промежутком:
  • Каждую минуту: /etc/cron.minutely
  • Каждый час: /etc/cron.hourly
  • Каждый день: /etc/cron.daily
  • Каждую неделю: /etc/cron.weekly
  • Каждый месяц: /etc/cron.monthly

Чтобы утилита могла выполнить задачу, в её названии не должно содержаться символа «.». Также должны наличествовать права на выполнение. При соблюдении этих условий планировщик сможет работать самостоятельно, в фоновом режиме, что очень удобно для новичка. Утилита имеет аналог anacron, но данный инструмент используется только с большим временным интервалом. Главное преимущество anacron – это функционирование при выключенном компьютере.

Однако для выполнения мелких и частых задач всё же лучше использовать cron.

Настойка времени и даты:

$ crontab -e

Команда позволит ознакомиться с файлом, в котором уже прописаны текущие параметры cron. Пользователь должен внести подходящие ему настройки и сохранить изменения в файле.

Подсказка: если обычно скрипты в Linux выполняются от имени root, это будет касаться и crontab. Выполнение от имени пользователя – вариант, о котором нужно забыть.

Задачи для планировщика cron настраиваются по синтаксису:

минута час день месяц день_недели /путь/к/исполняемому/файлу

Каждая команда для cron должна быть указана в развернутом виде. В ином случае сервис не сможет её обнаружить.

ВАЖНО! Дата и время в настройках планировщика указываются посредством цифр.

Примеры

Как узнать задачи планировщика для суперпользователя root Линукс:

$ crontab -l

Для полного удаления всех имеющихся задач воспользуйтесь командой:

$ crontab -r

При указании даты важно помнить, что понедельник – первый день, а воскресенье – седьмой или нулевой. Сокращенное название воскресенья – sun.

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

Например, нужно чтобы cron запускал bash скрипт /myscript/backup.sh каждый час с семи утра до семи вечера. Следовательно, нужно указать:

0 7-19 *** /myscript/backup.sh

Запуск один раз в час:

@hourly /myscript/backup.sh

Каждые 10 минут.

*/10 **** /myscript/backup.sh

Особенности планировщика

Автоматизация задач в ОС Линукс посредством cron – это, безусловно, очень удобно и заметно облегчает жизнь. Однако нужно понимать, какой инструмент попался пользователю в руки. Знакомимся поближе с особенностями Cron:

  1. Нижний порог времени – 1 минута.
  2. Файл crontab должен заканчиваться только пустой строкой (без исключений из правила).
  3. Выводы команд появляются в виде уведомлений юзеру Линукс. Исключение из правила: если в файле crontab указана директива MAILTO, уведомление будет отправлено на электронную почту (по адресу, указанному в этой же директиве).

Как посмотреть, функционирует ли планировщик cron в текущий момент времени:

$ service cron status

Как установить планировщик

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

Установка сервиса для Centos осуществляется таким образом:

# dnf install crontabs -y

По завершению процесса установки программы следует выполнить еще несколько обязательных действий. А именно, добавить инструмент в автозагрузку с дальнейшим запуском.

Первое действие:

# systemctl enable crond.service

Второе действие:

# systemctl start crond.service

Важное примечание относительно ввода заданий для планировщика: пользователь должен нажимать Enter после каждой добавленной строчки. Даже в тех случаях, когда строка всего лишь одна, без Enter не обойтись.

Дополнительная информация

Распространенные вопросы от пользователей:

«Что случится с планировщиком, если обновить сервер?».

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

«Есть ли ограничения в работе с cron?».

Ответ: при перегрузке сервера провайдер может снизить частоту запуска планировщика, но все задачи будут выполнены.

Заключение

Для планирования автоматических задач пользователю необходимо задать соответствующие настройки для применяемого сервиса. Cron может показаться сложным инструментом, но это лишь первое впечатление. С опытом приходит чёткое понимание того, почему cron не имеет особых конкурентов.