1 заметка с тегом

cron

cron

22 сентября 2016, 11:03

cron — демон (планировщик задач в UNIX-подобных операционных системах).


Используется для выполнения заданий в определенное время, или через определенные промежутки времени.

Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.

Для редактирования заданий используется утилита crontab.


Место хранения файлов:

/var/spool/cron/<user or crontab>



Добавление файла расписания:

crontab имя_файла_расписания



Вывести содержимое текущего файла расписания:

crontab -l



Удаление текущего файла расписания:

crontab -r



Для редактирования файла crontab вашего пользователя используется команда[2]:

crontab -e



Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:

crontab -u username



Внимание: -u можно воспользоваться только запуская crontab от лица суперпользователя.


Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы '*' или '/'.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)



Пример файла:

# как обычно, с символа '#' начинаются комментарии
 # в качестве командного интерпретатора использовать /bin/sh
 SHELL=/bin/sh
 # результаты работы отправлять по этому адресу
 [email protected]
 # добавить в PATH домашний каталог пользователя
 PATH=/bin:/usr/bin:/home/paul/bin
 
 #### Здесь начинаются задания
 # выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
 5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
 # выполнять 1 числа каждого месяца в 14 часов 15 минут
 15 14 1 * * $HOME/bin/monthly
 # каждый рабочий день в 22:00
 0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
 
 23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
 5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
 0 0 1 1 * echo "С новым годом!"
 15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
 0-59 * * * * echo "Выполняется ежеминутно"
 0-59/2 * * * * echo "Выполняется по четным минутам"
 1-59/2 * * * * echo "Выполняется по нечетным минутам"
 # каждые 5 минут
 */5 * * * * echo "Прошло пять минут"
 # каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
 0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"

 #Запуск по ссылке каждый день
 @daily wget -q --spider http://artana.ru >/dev/null 2>&1

 #Запуск по ссылке каждые 2 минуты
 */02 * * * * wget -q --spider http://artana.ru >/dev/null 2>&1
 
 #Запуск по ссылке в 7 утра и 10 минут
 10 7 * * * curl -s http://artana.ru >/dev/null 2>&1


CentOS   cron   Debian   Linux   Ubuntu