HomeCentOS › Crontab синтаксис

Crontab синтаксис

Доступ в каталог /var/spool/cron непривилегированому пользователю закрыт, что бы посмотреть юзером «user» есть ли у него файл crontab, достаточно набрать команду crontab -l , если файл существует-будет показано его содержимое.

Для удаления файла используется команда crontab -r

Для редактирования crontab -e

Для управления файлами crontab пользователем «root» используется синтаксис:

crontab -u user_name file — создание файла crontab из файла «file» для  юзера «user_name»

-u означает чей crontab будет обработан, если опция не задана, то будет обработан crontab того пользователя,  который запустил команду crontab.

crontab -u user_name -l — просмотр файла crontab юзера «user_name»
crontab -u user_name -r — удаление файла crontab юзера «user_name»
crontab -u user_name -e — редактирование файла crontab  юзера «user_name» используя редактор, заданный переменной окружения VISUAL или EDITOR

Формат и значения полей

Каждая команда в пользовательском файле crontab занимает одну строку и состоит из шести полей. Пользовательские файлы crontab находятся в каталоге /var/spool/cron

Общий формат команды:

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

Допустимые значения:
минута от 0 до 59
час от 0 до 23
день_месяца от 1 до 31
месяц от 1 до 12 (можно три буквы из названия месяца,  регистр не имеет значения от jan до dec)
день_недели от 0 до 6  (0 это воскресенье,  можно писать от sun до sat)

Каждое из полей даты и времени может быть обозначено символом * , будет соответствовать любому возможному значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом, например:
* 5 4-10 0-3 * echo «HELLO» — печать HELLO в 5:00 на 4,5,6,7,8,9,10 дни января, февраля, марта и апреля

пошаговая запись
* */2 * * sat echo «HELLO» — печать HELLO каждый четный час,   каждую субботу

равнозначная предыдущему примеру запись (списком)
* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo «HELLO» — печать HELLO каждый четный час, каждую субботу

то же самое с указанием диапазона
* 0-23/2 * * sat echo «HELLO» -печать HELLO каждый четный  час, каждую субботу

59 23 31 dec * echo «Happy new year» —  поздравит с новым годом

Для отладки задания cron, можно перенаправить результат в файл

Пример:
0-59 * * * * /home/user/mail 2>/tmp/tmp.cron

Если при запуске команды /home/user/mail возникнут ошибки, то они будут записаны в файл /tmp/tmp.cron и вы всегда сможете узнать причину. В случае перенаправления вывода в файл, письмо, юзеру указаному в переменной MAILTO отправлено не будет.

Посмотреть информацию о всех командах запускаемых демоном cron можно в каталоге /var/log называются cron, cron1 и т.д.

В файле /var/log/cron записано время запуска всех заданий cron за предыдущий день
Mar 29 04:03:00 rst CROND[4434]: (user) CMD (/home/user/mail)
Mar 29 04:03:59 rst CROND[4493]: (user) CMD (/home/user/mail)
Mar 29 04:05:00 rst CROND[4507]: (user) CMD (/home/user/mail)
Mar 29 04:06:00 rst CROND[4549]: (user) CMD (/home/user/mail)

В остальных файлах cron1,cron2 находится подобная информация, но более старая чем в cron

Вот практически и все, что требуется знать для использования cron и crontab.

Comments are closed.