cron
cron -- программа демон, планировщик задач
cron [-j jitter] [-J rootjitter] [-m mailto] [-s] [-o] [-x debugflag[,...]]
Cron является стандартной программой планировщиком заданий в Unix системах, в том числе и FreeBSD. Планировщик cron запускается из файлов: /etc/rc или /etc/rc.local. Поскольку программа cron запускается в качестве демона, сразу возвращая управление системе, нет необходимосте запускать его вручную, с суффиксом &
.После старта, cron производит поиск персональных crontab файлов, в папке /var/cron/tabs, соответствующих учетным записям пользователей, из файла /etc/passwd, обнаруженные файлы загружаются в память. Кроме того производится поиск и загрузка общесистемного crontab файла /etc/crontab.
Планировщик заданий cron, работает в фоновом режиме, просыпаясь каждую минуту и проверяя все загруженные crontab файлы, на наличие команд, которые нужно выполнить в текущую минуту. Прежде чем запускать команду из файла crontab, принадлежащего какой-либо учетной записи, cron проверяет статус данной учетной записи с помощью pam(3), игнорируя команды, если аккаунт пользователя заблокирован или просрочен. Команды из общесистемного файла /etc/crontab выполняются всегда. При выполнении команд, вывод отправляется на почтовый адрес владельца данной таблицы crontab ( или пользователю прописанному в переменной окружения MAILTO, если таковая присутствует ).
Дополнительно, каждую минуту, планировщик cron проверяет время модификации буферного каталога и файла /etc/crontab, если время изменилось, cron проверит время на всех файлах crontab и перезагрузит те которые были изменены. Таким образом не нужно перезапускать cron, всякий раз, когда какая-нибудь из таблиц crontab была измененв. Обратите внимание, КОМАНДА crontab(1) меняет время модификации буферного каталога, во время изменения файлов crontab.
Опции cron:- -j jitter
- Устанавливает так называемый "разброс" времени. Перед выполнение очередной команды, cron будет засыпать на случайное количество секунд, лежащее в диапазоне между 0 и jitter. Данная опция не затрагивает задания пользователя root ( смотрите -J ). Значение должно быть от 0 до 60 включительно. Значение по умолчанию 0, то есть отключено. Данная опция помогает снизить чрезмерную нагрузку, возникающую в случае выполнения большого количества запланированных заданий cron, запускаемых одновременно, например в первую минуту каждого часа.
- -J rootjitter
- Устанавливает "разброс" времени для планировщика заданий пользователя root, в остальном работает подобно опции -j.
- -m mailto
- Переопределяет получателя по умолчанию для извещений cron. Каждый crontab(5) без явно установленной переменной MAILTO, будет отправлять письма на установленный в этой опции адрес. Отправка почты будет отключена, если установлено значение '' или "", то есть пустая строка.
- -s
- Включить специальный обработчик для ситуации, когда изменяется GMT смещение для локальной временной зоны, например при переходе с обычного времени на летнее. При запуске заданий cron, изменение GMT смещения, интуитивно ожидаемо. Если задание попадает в промежуток времени который пропадает, например во время перехода на летнее время, либо наоборот дублируется, во время обратного перехода, ситуация обрабатывается по одному из двух возможных вариантов: Первый случай, когда временной интервал заданий выполняемых ежечасно, наклвдывается на пропадающий или дублирующийся интервал. Другими словами, если задание запускается в течении часа до изменения GMT смещения ( и планировщик cron не будет перезапущен в этот промежуток времени млм изменен crontab ) или в течении часа после изменения GMT смещения. Cron отработает как обычно, пропускает, пропущенное время или запускается в добавленное. Второй случай, для заданий выполняемых реже. Они будут выполнены один раз, не будут пропущены или запущены дважды ( если cron не перезапущен и пользовательский crontab не изменен ). Если временной интервал пропадает во время GMT смещения, задания будут выполнены в том-же абсолютном моменте времени как если-бы они были в старом часовом поясе.
- -o
- Отключает специальную обработку изменения GMT смещения локальной временной зоны, для совместимости со старым поведением планировщика заданий по умолчанию. Если определены опции -o и -s, будет учтена, идущая последней.
- -x debugflag[,...]
- Включить запись отладочной информации в поток стандартного вывода. Один или более отладочных флагов, разделенных запятой, должны быть опредены.
- bit не используется
- ext сделать другой отладочный флаг более информативным
- load быть более информативным при загрузке crontab файлов
- misc быть более информативным при различных разовых событиях
- pars быть более информативным при парсинге каждой строки crontab файла
- proc быть более информативным выводя статус процесса и всех его потомков
- sch быть более информативным в повторных выполнений заданий
- test отследить процесс запуска но не производить при этом никаких действий
- /etc/crontab — Общесистемный crontab файл
- /etc/pam.d/cron — Конфигурационный файл pam.conf(5)
- /var/cron/tabs — Директория с персональными crontab файлами