Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

cron

cron

  • Конфигурационный файл /etc/crontab. Директория для конфиг. файлов /var/spool/cron/
  • Демон crond вызывает run-parts для запуска сценариев из каталогов /etc/cron.*.
Если для run-parts не задана ни опция –lsbsysinit ни опция –regex, то имена должны состоять полностью из букв в верхнем и нижнем регистре, цифр, знаков подчёркивания и дефисов. Точку run-parts НЕ понимает.

Демон cron при каждой активизации проверяет дату изменения файла /etc/crontab и директории /var/spool/cron/. Если они изменились, то он перечитывает все изменения и учитывает их при последующих вызовах. Поскольку утилита crontab после редактирования файла заданий меняет дату изменения для папки /var/spool/cron/, то после того, как в пользовательский файл расписаний будут внесены изменения, нет нужды в перезапуске процесса cron - эти изменения будут учтены при следующей активизации. Именно по этой причине для редактирования пользовательских файлов расписаний следует использовать команду crontab -e, а не редактировать файлы непосредственно. Для файла /etc/crontab дата изменения проверяется отдельно, поэтому его можно изменять обычным редактором (для этого нужны права root).

Выводимая выполняемыми командами информация по умолчанию пересылается на почтовый ящик владельца файла расписаний(обычно это root и его EMail указывается в файле /etc/aliases). Если нужно отменить действие по умолчанию используют переменную MAILTO. Пустое значение (MAILTO="") будет перенаправлять сообщения в /dev/null.

Формат файла crontab также допускает вместо первых пяти позиций, означающих время выполнения задания, использовать предопределенные значения:

  • @reboot (выполнять при загрузке операционной системы)
  • @yearly (выполнять ежегодно в полночь 1-го января)
  • @monthly (выполнять ежемесячно в полночь 1-го числа)
  • @weekly (выполнять в полночь каждый понедельник)
  • @daily (выполнять ежедневно в 0:00)
  • @hourly (выполнять в начале каждого часа).

Посмотреть файл crona для пользователя www-data. Ключ -е позволит редактировать файл крона пользователя www-data.

# crontab -u www-data -e # редактировать содержимое файла crontab
# crontab -u www-data -l # отобразить содержимое файла crontab
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
Если указаны все звездочки - значит запускать каждую минуту.

Примеры:

  • Запускать программу каждый два дня в 10:00 и высылать отчет на EMail указанный в переменной MAILTO
    MAILTO=noc@example.net
    0 10 */2 * * root /usr/local/repl/restart_repl.sh
  • Запускать скрипт 1-го и 15-го числа каждого месяца в 2:05, а также по воскресеньям (Day и WDay работают в режиме "ИЛИ")
    5  2  1,15 * Sun /home/script



cron.txt · Последние изменения: 2016/05/18 08:17 (внешнее изменение)