DDR64.ru

Выделяем главное

Простой планировщик заданий на CentOS

Задача —  каждые 3 мин. запускать php скрипт.

Для выполнения поставленной задачи, будем использовать встроенный планировщик – cron.

Первым делом создаем простенький скрипт, в котором укажем путь к php скрипту, который надо будет запускать. В моем случае, это cron.php. Скрипт сохраним под именем cron.sh, в этой же директории.

#! /bin/sh

php  /var/www/mysite/cron.php

Разрешим скрипту выполняться:

#chmod u+x cron.sh

Переходим в планировщик:

# crontab –e

Создаем задачу:

*/3 * * * * /var/www/mysite/cron.sh

Выходим с сохранением:

# :wq

Первые пять звезд – это: минуты, часы, день месяца, месяц, день недели. Звезда означает – каждый, каждый час, каждый день и т.д.  Слэш(/) – означает  периодичность. В моем случае */3 – означает, каждые 3 мин.

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

параметр допустимый интервал
минуты 0-59
часы 0-23
день_месяца 1-31
месяц 1-12
день_недели 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)

Поле может быть задано явно или шаблоном :

  • звездочка —  любая цифра
  • целое число
  • целые числа через запятую — задание дискретного множества значений
  • два целых числа, разделенные дефисом, соответствующие диапазону значений.

Пример готовой строки сценария cron:

# Выполнять задание в 18 часов 7 минут 13 мая если это пятница
7 18 13 5 5 /home/www/myscript.pl
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.pl
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.pl
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.pl

Для выполнения php скриптов из cron необходим бинарный интерпретатора PHP, путь к интерпретатору PHP уточните у хостинга.

# Пример запуска скрипта в 5 утра каждый день:
0 5 * * * /usr/bin/php -q /home/www/script.php

Обратите внимание, при запуске из cron опция -q указывает PHP не выдавать http-заголовки.

Для получения списка всех заданий:

# crontab –l

Чтобы посмотреть ошибки, которые возникают в процессе выполнения задания, можно в задании указать файл, куда будет писаться лог.

*/3 * * * * /var/www/mysite/cron.sh 2 > /var/mycron.log

Основной лог cron хранится в /var/log/

Поделиться
Оценить статью
(Пока оценок нет)

Добавить комментарий через VK

Добавить комментарий

Войти с помощью: