|
Использование и настройка планировщика Cron. | |
Процесс Cron
Данный процесс запускает определенные команды в заданное пользователем время. Для обеспечения корректного планирования в каждый момент времени в системе может быть запущен только один процесс cron.
Демон Cron активизируется один раз в минуту, загружает Crontab файлы и для каждой запланированной задачи проверяет, не наступило ли время запуска. Таким образом минимальный интервал между запуском программ составляет 1 минуту.
Если в программе, запускаемой с помощью Cron не перенаправлен стандартный вывод, то выходные данные отправляются по электронной почте пользователю, который запланировал данную задачу.
Часто используемые конфигурационные файлы:
Crontab-файлы
Это командные файлы, созданные с помощью утилиты Crontab. Такие файлы бывают системными и пользовательскими. В системном файле (/etc/crontab или /usr/lib/crontab) содержатся команды для управления системой, пользовательские – создаются в соответствии с ограничениями прав для конкретного пользователя (/var/spool/cron/username).
Строка, содержащаяся в файле Crontab состоит из 6 полей.
минуты (0-59)
часы (0-23)
день (1-31)
месяц (1-12)
день (1-7)
Каждое из этих полей может содержать следующие данные:
- число в пределах допустимых значений
- диапазон значений, например, 2-5
- список значений через запятую
- символ * описывающий все допустимые значения
шестое поле содержит строку, которая интерпретируется как команда, символ % преобразуется в перевод строки, если перед ним не указана обратная косая черта.
Для обозначения дней недели в BSD используются значения 1-7, где 7 – это воскресенье. В Linux – 0-6, где ноль – воскресенье.
Также в Linux можно указывать имя пользователя от которого будет запускаться задача.
Пример crontab-файла:
|
Мин. |
Час. |
день |
Мес. |
День недели |
Польз |
Описание |
|
5 |
0 |
* |
* |
* |
Anton
|
Запуск 00:05 ежедневно |
|
45 |
16 |
1 |
* |
* |
Anton
|
Запуск 16:45 первого числа
каждого мес. |
|
0 |
22 |
* |
* |
1-5 |
Anton
|
Запуск 22:00 с понед. По пятниц. |
|
* |
* |
* |
* |
* |
Anton
|
Запуск каждую минуту |
|
55 |
16 |
* |
* |
fr
|
|
Запуск 16:55 в пятницу |
В некоторых версиях Unix, например, в Linux, можно задавать период внутри диапазона. Для этого нужно указать число отделив его косой чертой от диапазона чисел. Например, если в поле «часы» указать 0-23/2, это будет означать, что задача будет выполняться в четные часы в период от 0 до 23 часов (можно также использовать */2).
Контроль доступа к демону Cron.
В некоторых случаях возникает необходимость ограничить доступ к Cron определенной группе пользователей. Для этого можно использовать файлы cron.allow, cron.deny.
Если файл cron.allow существует, то пользоваться Cron могут только пользователи, указанные в этом файле, если этот файл отсутствует, то система использует файл cron.deny – право работать с Cron в этом случае имеют пользователи не указанные в cron.deny.
Если файл cron.allow пустой, то доступ разрешен всем пользователям. Если отсутствуют оба файла, то пользоваться Cron может только root. Если существуют оба файла, то используется только cron.allow.
Чтобы пльзователи, которым разрешен доступ к Cron могли воспользоваться его возможностями необходимо выполнить следующее:
1.Создать специальную группу (например, cron), в которую должны входить лишь пользователи, которым разрешено использовать Cron.
2.Сменить признаки владения файлом crontab, указав в них вновь созданную группу.
3.Изменить права доступа к crontab так, чтобы запускать его могли только члены группы cron. Также необходимо установить признак SUID, чтобы на время выполнения програм file:///home/www/freebsd/htdocs/cron.phpмы crontab пользователь получал права root. |