Матвей Земсков

Заметки веб-мастера

Понедельник, 01 октября 2012 14:20

Настройка запуска нескольких php скриптов по расписанию.

Оцените материал
(12 голосов)

Задача: необходимо настроить запуск нескольких php скриптов по расписанию. Задача немного усложняется тем, что скрипты должны запускаться по очереди.

Как известно, для запуска по расписанию команд в UNIX-подобных операционных системах используется утилита cron. В данном случае речь идет об ОС FreeBSD.

В личном кабинете хостинга обычно присутствует интерфейс для работы с инструкциями, размещаемыми в файлах crontab. Так как в моем случае скриптов несколько и запускать их нужно по очереди, сделать настройки через веб-интерфейс не получится.

Чтобы все работало как задумано, нужно разместить команды вызова скриптов в исполняемом файле (UNIX shell - .sh).

Подключитесь к серверу по протоколу SSH и создайте .sh-файл в домашней директории. Можно создать какую-нибудь папку внутри домашней директории.

Существует несколько вариантов запуска скриптов: кроме простого запуска, есть возможность сохранения результатов работы скрипта в файл, либо отправки их на e-mail.

• Запуск скрипта - результаты никуда не сохраняются и не отправляются:

# /usr/local/bin/wget -O /dev/null -q http://domen/path/file.php

• Запуск скрипта с сохранением результатов его работы в файл:

# /usr/local/bin/wget -O путь к файлу -q http://domen/path/file.php

В моем случае «путь к файлу» такой /home/m/mattweb/

• Запуск скрипта с отправкой результатов его работы на e-mail (результаты работы в файл не сохраняются):

# /usr/local/bin/wget -O - -q http://domen/path/file.php | /usr/bin/mail mail@host.ru

В файл нужно добавить соответствующие команды для запуска всех необходимых скриптов. Не забудьте проверить, правильно ли в команде указан путь к wget:

# locate wget

Затем нужно сделать этот файл исполняемым:

# chmod +x имя_файла.sh

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

Формат команды следующий:

минута час день_месяца месяц день_недели команда

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

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

Каждое из полей даты и времени может быть обозначено символом * - будет соответствовать любому возможному значению. Также для этих полей можно указывать диапазоны значений, разделенные дефисом.

Почитать о crontab в FreeBSD

Примеры команд в Ubuntu

Прочитано 15577 раз
Мои услуги

Предлагаю следующие услуги:

  • Верстка шаблона сайта из дизайн-макета для CMS «1С-Битрикс Управление сайтом» и CMS “Joomla”
  • Создание форм различной сложности (обратная связь, анкеты и тп) для указанных CMS
  • Настройка и кастомизация компонентов и модулей для указанных CMS
  • Доработка модулей и компонентов для указанных CMS, добавление нестандартного функционала
  • Разработка лендингов (landing-pages)

По все вопросам обращайтесь через форму обратной связи

Скачать

Предлагаю вашему вниманию:

Наверх