Настройка задач Cron
Основной файл конфигурации cron, /etc/crontab, содержит следующие строки:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly |
Первые четыре строки — это переменные, настраивающие среду окружения, в котором будут работать задачи cron. Значение переменной SHELL сообщает системе о том, какую оболочку использовать (в этом примере будет использована оболочка bash), а переменная PATH определяет пути, используемые для выполнения команд. Результат выполнения задач cron будет выслан по электронной почте пользователю, определённому в переменной MAILTO. Если в качестве значения переменной MAILTO задана пустая строка (MAILTO=""), электронные письма отправляться не будут. Переменная HOME задаёт домашний каталог, используемый при выполнения команд или сценариев.
Каждая строка в файле /etc/crontab имеет следующий формат:
minute hour day month dayofweek command |
- minute — любое целое число от 0 до 59
- hour — любое целое от 0 до 23
- day — любое целое от 1 до 31 (день должен быть корректным, если указан месяц)
- month — любое целое от 1 до 12 (или короткое название месяца, например: jan, feb и так далее)
- dayofweek — любое целое от 0 до 7, где 0 или 7 означает Воскресенье (или короткое название дня недели, например: sun, mon и так далее)
- command — команда, которая должны быть выполнена. Командой может быть как простая команда, например, ls /proc >> /tmp/proc, или команда запуска написанного вами специального сценария.
Для любых указанных выше параметров можно использовать звездочку (*), что означает все допустимые значения. Например, если поставить звёздочку в значении месяца, команда будет выполняться каждый месяц во время, указанное другими параметрами.
Дефис (-) между целыми числами обозначает диапазон чисел. Например, 1-4 означает целые числа 1, 2, 3 и 4.
Список значений, разделенных запятыми (,), обозначает перечень. Например, перечисление 3, 4, 6, 8 означает четыре указанных целых числа.
Косая черта (/) используется для определения шага значений. Целочисленное значение может быть пропущено в диапазоне, если после диапазона указать /<целое>. Например, значение минут 0-59/2, определяет, что будет пропущена каждая вторая минута. В качестве шага значений также может быть указана звёздочка. Например, значение месяца */3 определяет, что будет пропущен каждый третий месяц.
Любые строки, начинающиеся с символа решетки (#), являются комментариями, и не обрабатываются.
ПРИМЕРЫ
*/5 * * * * — запускать команду каждые пять минут
0 */3 * * * — запускать каждые три часа
0 12,13,14 * * * — запускать команду каждый час с 12 до 14
*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php - запуск каждую минуту php-скрипта test.php
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl - запуск каждый час perl-скрипта test.pl
КОМАНДА
Необходимо задать путь до скрипта от домашнего каталога
Например: public_html/cgi-bin/script.pl
Cистема сама подставит символ ~/ (эта комбинация заменяет полный путь)
Получится: ~/public_html/cgi-bin/script.pl
Если в конце пути поставить символ & (амперсанд), то скрипт будет работать в фоновом режиме.
Установка этого символа необязательна.