Что такое cron?
Cron – это планировщик заданий, основанный на времени, он настроен на выполнение команд в заданное время или через определенные промежутки времени.
Cron контролируется набором файлов, называемых crontabs.
Главный файл находится в /etc/crontab (который в Red Hat Enterprise Linux немного отличается от других * никсов) вместе с файлами crontab для пользователей в /var/spool/cron/.
В последнем каталоге файлы имеют то же имя, что и имя пользователя.
В Red Hat Enterprise Linux системному администратору проще настраивать задания cron, чем в других дистрибутивах.
Файл /etc/crontab автоматически выполняет элементы в нескольких подкаталогах через регулярные промежутки времени.
/etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
Все, что нужно сделать системному администратору – это поместить скрипт оболочки или ссылку на исполняемый файл в один из каталогов, и он будет автоматически запущен в соответствующее время.
Настройка crontab на уровне пользователя несколько отличается.
Файлы в /var/spool/cron не редактируются напрямую.
Вместо этого для управления ими используется программа crontab.
В зависимости от безопасности системы, все пользователи, только некоторые или только пользователь root, смогут использовать crontab (см. Разделы man crontab /etc/cron.allow и /etc/cron.deny для получения дополнительной информации).
SYNOPSIS crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } file store the specified file as the current crontab -u user the crontab file being manipulated is for -l display the current crontab -r remove current crontab -e edit the current crontab (editor depends on system variables and will probably be vi unless your sysadmin has changed it).
Если вы не знакомы с общесистемным редактором по умолчанию vi, то, вероятно, лучше всего создать / отредактировать файл с помощью знакомого редактора и использовать опцию file с первой командой.
Настройка Crontab
Пустые строки, начальные пробелы и табуляции игнорируются.
Строки, начинающиеся с #, являются комментариями и игнорируются.
Комментарии не могут находиться в одной строке с командами cron; они будут считаться частью команды.
Комментарии не допускаются в той же строке, что и параметры среды, по аналогичным причинам.
Syntax Environment settings take the format of name = value (The spaces around the = are optional.) Each cron command has 5 time and date fields, followed by a user name, and if this is the system crontab file, it will be followed by a command. Commands are executed when the time specified by the time/date fields matches the current time. field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 0-31 month 0-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names) A field may be an asterisk (*), which always stands for ``first to last''. So used in the hour field, it means 'every hour from 00:00 to 23:00" Example Crontab: # r----minute # | r-----hour # | | r------day of the month # | | | r------month # | | | | r------day of the week # | | | | | |------ command to run -------------> # | | | | | | 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>? # run five minutes after midnight, every day 15 14 1 * * $HOME/bin/monthly # run at 2:15pm on the first of every month -- output mailed to paul 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% # print out the message at 4:05 every sunday. 5 4 * * sun echo "run at 5 after 4 every sunday"
Если этот файл был сохранен как john.cr, то его можно использовать для хранения crontab для пользователя john.
# crontab -u paul paul.ct