Что такое 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
![]()
