uz
АМ
Александр Мельников
июня 23, 2025
Обновлено июня 23, 2025

Настройка планировщика Cron в Linux

Linux

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

Настроить cron можно несколькими способами. Самый простой и быстрый — указать задание руками в файл /etc/crontab. Проблема в том, что это может сделать только пользователь root.

Структура файла /etc/crontab представляет собой последовательность установок даты и времени, имени пользователя от которого выполняется задача и явное указание исполняемого файла.

# m h dom mon dow user command

# – строка закомментирована, т.е. не выполняется планировщиком

m – минуты. Диапазон значений 0-59

h – часы. Диапазон значений 0-23.

dom – day of month – день месяца (число). Диапазон значений 1-31

mon – месяц. Диапазон значений 1-12

dow – day of week – день недели. указывается числом, где 0 – воскресенье, 6 – суббота.

user – пользователь от которого выполняется задача.

command – выполняемая задача.

Важно! Значения минут, часов, дней месяца, дней недели, а также месяца могут быть * (звездочкой) принимая все доступные значения. Также можно использовать список параметров разделенных запятой.

Примеры разберем подробнее немного позже.

Простым пользователям доступна системная утилита crontab. Для гибкости использования используются параметры:

crontab -e

Используется для редактирования или создания файла расписания для текущего пользователя

crontab -l

Вывод существующих задач в расписании пользователя

crontab -r

Удаление файла расписания текущего пользователя

crontab -u username

Работа с расписаниями указанных пользователей. Выполняется только от пользователя root

Добавим задание.

Для этого в консоли пишем команду:

crontab -e

Запустится редактор файла используемый по умолчанию (Ubuntu – nano/vi, FreeBSD – ee), в нашем случае mcedit из пакета Midnight Commander.

Mcedit из пакета Midnight Commander

Синтаксис команд идентичен как и для файла /etc/crontab, за исключением отсутствия параметра имени пользователя. Это значит, что после сохранения файла, все задачи будут выполняться от текущего пользователя.

Сохраняем файл, выходим из редактора и проверяем список заданий crontab -l.

Проверим как работает удаление файла заданий – crontab -r.

Настройка планировщика Cron в Linux

Важно! Программа не спрашивает, уверены ли вы в удалении файла заданий. Если нужно удалить конкретное задание, следует использовать crontab -e.

Для администратора важно, чтобы не все пользователи могли пользоваться планировщиком. Для этих целей можно использовать файлы /etc/cron.allow и /etc/cron.deny (в некоторых дистрибутивах эти файлы должны размещаться в /etc/cton.d). По умолчанию, использование cron разрешено всем пользователям.

Примеры использования в файле /etc/crontab.

Выполнение задачи каждые 5 минут от пользователя root:

*/5 * * * * root /root/scripts/script1.sh

В полдень и полночь:

0 */12 * * * root /root/scripts/backup.sh

Перезагрузка сервера в 0:00 в первый день месяца (исключительно как пример):

0 0 1 * * root reboot

Выполнение скрипта с понедельника по пятницу в полночь:

0 0 * * 1-5 root /root/script/backup_db.sh

Неправильный пример:

* 0 * * 1-5 root /root/script/backup_db.sh

Ошибка в том, что скрипт будет запускаться с понедельника по пятницу каждую минуту с 0:00 по 0:59

В заданиях назначаемых через crontab -e (т.е. от текущего пользователя) не указывается параметр имени пользователя, в случае примеров – root.

На что еще следует обратить внимание:

Все пути до исполняемых файлов следует писать абсолютными.

Скрипты исполняются из корневой директории, а следовательно, при написании скрипта следует указывать рабочий каталог, либо абсолютные пути до целевых файлов (если в ходе работы скрипта генерируются файлы-отчета и им подобные).

Оценка:
5 из 5
Аverage rating : 5
Оценок: 5
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...