Cron/crontab - это планировщик заданий (система для автоматического запуска программ и скриптов на сервере в определённое время). Если вы не продвинутый UNIX-пользователь, вам легче будет настроить планировщик в панели управления.

Информацию о расписании выполнения программ демон cron считывает из файла crontab. Дописывание и редактирование строчек этого файла осуществляется посредством команды crontab file.txt через ssh доступ.

Загрузите файл с crontab записями на ваш хостинг, например, cron.txt. Подключитесь по ssh, находясь в папке с файлом cron.txt, наберите команду crontab cron.txt.

Каждая запись в файле cron.txt должна идти с новой строчки.

Запись crontab-файла в общем случае состоит из семи полей:
минуты часы день месяц день_недели имя_пользователя команда

Допустимые значения:

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

печать HELLO в 5:00 на 4,5,6,7,8,9,10 дни января, февраля, марта и апреля:

* 5 4-10 0-3 * echo "HELLO"

печать HELLO каждый четный час, каждую субботу:

* */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"

Самый простой пример

 59 23 31 dec * echo "Happy new year"

поздравит с новым годом.

Примечание: Как команду можно использовать PHP-скрипт, но запускать его нужно с обработчиком.

Пример команды с использованием:

  • php 4.3.9: /usr/local/apache/bin/php-cgi -f /home/ваш_логин/путь_к_файлу
  • php 4.4.x: /usr/local/apache/bin/php-cgi.4.4 -f /home/ваш_логин/путь_к_файлу
  • php 5.x.x: /usr/local/apache/bin/php-cgi.5 -f /home/ваш_логин/путь_к_файлу

Примечание: Посмотреть, какие cron записи активны в данный момент, можно командой crontab -l.

Управление через шелл: управление планировщиком заданий через шелл осуществляется с помощью команды crontab, имеющей следующие ключи:
-u - имя пользователя, для которого настраивается crontab (можно не указывать, если настраивается для текущего пользователя);
-l - показывает текущий список заданий планировщика;
-r - удаляет все текущие задания;
-e - режим редактирования.

При использовании ключа -e редактирование осуществляется текстовым редактором vi. Если вы с ним не знакомы, то можно записать задание в любой файл любым удобным для вас текстовым редактором (например, mcedit), и загрузить в крон задание из этого файла, командой crontab <имя_файла>

Примеры:
1. Очистить планировщик задания для пользователя test: $crontab -u test -r

2. Создать файл с заданием (task.txt) и загрузить его в планировщик для текущего пользователя:

$cat > task.txt
MAILTO="qwerty@agava.com"
0 */1 * * * /usr/local/bin/php -f /home/login/script.php
^C
$crontab task.txt

MAILTO - адрес, на который будут высылаться отчёты о работе планировщика.

3. Загружать страницу http://qwerty.com1.ru/index.php каждый час:

0 */1 * * * wget -q -O temp.php http://qwerty.com1.ru/index.php

Примечание: рекомендуем использовать команду wget вместо get!

Вы ознакомились с наиболее часто задаваемыми вопросами, но не нашли нужного ответа? Или информации на сайте оказалось недостаточно?

Тогда напишите нам!

*Ваш e-mail:

 Номер вашего Лицевого счета:

 Категория вопроса:

*Вопрос:

*Введите отображаемый код: