cron


cron — классический демон (компьютерная программа в системах класса UNIX), использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.

Название cron образовано от греческого слова χρόνος (хрόнос) — время (по-английски — chronos). Разработчик cron, Кен Томпсон (англ. Ken Thompson), подтвердил это в частной беседе с Брайаном Керниганом (англ. Brian Kernighan)[источник не указан 1693 дня].

Файлы crontab, создаваемые для отдельных пользователей, находятся в каталоге[1] /usr/spool/cron/crontabs/ или /var/spool/cron/tabs/. Редактировать их вручную не рекомендуется, для этого используют команду crontab -e. Файлы crontab, используемые для управления всей системой, располагаются в каталоге /etc/cron.d/. Кроме того, в каталогах /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).

Каждый пользователь системы имеет свой файл заданный crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноимённая программа crontab, позволяющая не прерывать процесс cron на время редактирования.

Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (минута, час, день, месяц, день недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы * или /. В системных файлах crontab после полей времени указывается пользователь, от которого запускается команда. Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами. Если команда отправляет какой-нибудь текст в стандартный вывод, этот текст отправляется по e-mail пользователю.

Например, следующий код очищает журнал ошибок Apache в одну минуту после полуночи (00:01) каждый день, предполагая, что оболочка по умолчанию для пользователя cron совместима с оболочкой Bourne: