Планирование процессов: Cron и файлы Crontab

Может пригодиться свойство Linux выполнять задачи в заданное время. Такое полезно при организации рутинных процедур обслуживания системы, которые должны выполняться периодически в заданное время. Такие процедуры не требуют вмешательства администратора, и могут выполняться автоматически. Для их выполнения есть утилита ``cron''. Такие задачи могут выполняться с разной частотой: от раза в минуту до раза в год.

Утилита cron в Linux очень похожа на подобные ей средства в других версиях Unix. Однако, Red Hat имеет несколько особый путь планирования задач, чем принятый в других дистрибутивах Linux. Как и в других версиях, информация о планируемых процессах заносится в системный файл ``crontab'' (в каталоге ``/etc/''), в формате:

минута час день месяц год команда

Каждый компонент может быть задан целым числом (от 1 до 12 для месяцев) или вместо компонента может стоять звездочка (``*''), которая воспринимается как любое значение (то есть, * в компоненте месяца задает выполнение команды в заданное время заданного дня каждого месяца. Например:

# Mail the system logs at 4:30pm every June 15th.
30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done

# Inform the administrator, at midnight, of the changing seasons.
00 00 20 04 * echo 'Woohoo, spring is here!'
00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!'
00 00 20 10 * echo 'Fall has arrived. Get those jackets out. :-('
00 00 20 12 * echo 'Time for 5 months of misery. ;-('

Заметим, что команды, вывод которых идет на стандартный вывод системы, (например, команда ``echo'' в данном примере) пошлют свой вывод пользователю ``root'' по почте. Если такой подход Васне устраивает (хотя он удобен для контроля процессов), просто перенаправьте вывод на устройство null:

00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/null

В дополнение к стандартным записям в ``crontab'', Red Hat добавляет несколько каталогов:

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/

Исполняемые файлы могут быть помещены в любой из этих каталогов, и они будут выполнены ежечасно, ежедневно или еженедельно. Это сохраняет немного времени при установке частых задач: только поместите скрипт или программу (или символическую ссылку) в соответствующий каталог, и забудьте про это!