Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UNIX.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
10.6 Mб
Скачать

Служба планирования заданий

Презентация 7-06: служба планирования заданий

Одной из распространённых задач администрирования является запуск каких-то задач в определённое время с заданной периодичностью. В UNIX этой цели служит планировщик заданий cron.

За выполнением задач по расписанию следит демон, который обычно называется crond. Само расписание описывается в специальных конфигурационных файлах — есть расписание общесистемных задач (/etc/crontab), а также персональное расписание задач (файл crontab) для каждого пользователя. Всем ли пользователям дозволяется пользоваться выполнением задач по расписанию — определяет администратор системы; зачастую для этого пользователей включают в спецаильную группу (например, cron).

Конфигурация планировщика заданий

Каждое задание характеризуется следующими параметрами:

  • минуты, часы, дни, месяцы и дни недели, в которые производится запуск;

  • собственно задача — команда для исполнения.

В файле /etc/crontab эти параметры записываются следующим образом:

Пример 3.3. Пример файла /etc/crontab

0 * * * * rm -f /var/spool/cron/lastrun/cron.hourly

1 3 * * * rm -f /var/spool/cron/lastrun/cron.daily

15 4 * * 6 rm -f /var/spool/cron/lastrun/cron.weekly

30 5 1 * * rm -f /var/spool/cron/lastrun/cron.monthly

*/10 * * * * /usr/bin/test -x /usr/sbin/run-crons && /usr/sbin/run-crons

*/5 * * * * /usr/bin/vnstat -u

58 * * * * rdate -ncav ptbtime1.ptb.de

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

Для изменения конфигурации планировщика можно просто отредактировать этот файл и запустить команду crontab, но лучше пользоваться этой командой с параметром -e: crontab -e — в этом случае при записи файла будет проверена корректность синтаксиса файла crontab.

В приведённом примере файл /etc/crontab отражает механизм, встречающийся в современных UNIX-системах — каталоги /etc/cron.*. В каждом из них размещаются скрипты для каждой задачи, которые должны выполняться раз в день, раз в неделю, раз в месяц и т.д. соответственно. Такая схема облегчает администратору управление периодическими задачами: не нужно для каждой задачи вписывать отдельную строку и указывать особое время выполнения в файле crontab, достаточно определить периодичность выполнения задачи и добавить скрипт в соответствующий каталог. Редактировать crontab в такой ситуации нужно только если требуется изменить время выполнения периодической задачи.

Запуск программ

Демон crond в заданное время производит выполнение команд. Задачи из /etc/crontab запускаются от имени суперпользователя, задачи, определённые пользователем в своём конфигурационном файлe crontab, выполняются от имени соответствующего пользователя.

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

В разных UNIX-системах существует несколько реализаций службы планирования заданий (например, dcron, fcron, anacron и т.п.), но все они реализуют описанную выше базовую функциональность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]