Меню Закрыть

Запуск php скрипта по расписанию

Содержание

Всем привет, помогите пожалуйста решить задачу, на сайте есть еженедельный конкурс, каждый понедельник в 0:00 он должен начинаться, а каждое воскресенье в 23:59(или если возможно в 0:00), завершаться, и сразу после начисления приза начинался опять? Но вот как запускать php скрипт каждый понедельник в 0:00 без CRON, я не знаю. Подскажите пожалуйста решение проблемы.

2 ответа 2

cron online, указываете ссылку на файл на своем ресурсе, который надо дергать в нужное время, ну и указываете время.

пробовал выше указанный ресурс(http://mywebcron.com), там выдал ошибку Some thing gone wrong! General error . нашел вот эту: https://www.easycron.com вроде этот все отработал супер! также есть еще один https://crondash.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками cron php или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

1. Зачем нужен cron?

Планировщик заданий позволяет выполнять команды на сервере хостинга по расписанию.

Управление планировщиком производится в разделе Планировщик заданий панели управления хостингом.

Особенности планировщика заданий хостинга:

  • минимальный интервал выполнения заданий — 1 минута;
  • данные со стандартных потоков вывода (stdout) и ошибок (stderr) направляются на "пустое" устройство (/dev/null).

2. Управление заданиями планировщика с помощью панели управления

Для того чтобы создать новое задание:

1. Войдите в панель управления хостингом, используя свой номер договора и пароль.

2. Перейдите в раздел Планировщик заданий.

3. Нажмите кнопку Создать задачу в правом верхнем углу.

4. На следующей странице введите название задачи.

5. Установите время, когда должно выполняться задание. Примеры приведены в п.4 этой инструкции.

6. Выберите в поле Тип файлаКоманда. При необходимости вы можете выбрать иной тип.

7. Выберите сайт для которого будет выполняться задание, при необходимости.

Читайте также:  Adobe premiere pro анимация картинки

8. Заполните поле Путь к файлу или команда и нажмите кнопку Создать.

3. Примеры настройки команд

3.1. Запуск php-скриптов

Для запуска php-скрипта можно воспользоваться следующей командой:

cd $HOME/папка_сайта/docs/папка_скрипта/ && php $HOME/папка_сайта/docs/папка_скрипта/имя_скрипта.php

  • cd $HOME/папка_сайта/docs/папка_скрипта/ — переход в каталог, в котором размещен скрипт;
  • php — интерпретатор php;
  • $HOME/папка_сайта/docs/папка_скрипта/имя_скрипта.php — полный путь к скрипту.

3.2. Запуск php-скриптов с параметрами

wget -O — -q "http://nic.ru/cron.php?var1=xxx&var2=yyy"

  • wget — путь к программе wget,
  • http://nic.ru/cron.php?var1=xxx&var2=yyy — адрес скрипта с параметрами.

3.3. Запуск shell-скриптов

Для запуска shell-скрипта достаточно указать в качестве команды полный путь к скрипту:

Файл скрипта должен иметь атрибут исполнения.

4. Примеры настройки времени выполнения

Запуск задания раз в день

  • Час задаётся в пределах от 0 до 23.
  • Минута задаётся в пределах от 0 до 59.

Запуск задания раз в неделю

  • День недели задаётся в пределах от 1 (понедельник) до 7 (воскресенье).

Запуск задания раз в месяц

  • День месяца задаётся в пределах от 1 до 31.

5. Управление статусом заданий

Для выключения задания деактивируйте слайдер в поле Статус.

Для удаления задания перейдите к его настройкам и нажмите на кнопку Удалить.

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

Немного теории по этим ссылкам: тут и тут, для тех хочет освежить память.

Случай первый

В настройках операционной системы не указаны пути по умолчанию. Как следствие следующая команда в cron не будет выполнена.

Правильной командой будет второй вариант, где мы пропишем полный путь до интерпретатора php.

Есть ещё несколько способов запуска php скрипта описанных здесь. Интересным будет здесь то, что php скрипт запускается как файл с командами для консоли и тут можно написать целую тучу команд и описать всевозможные варианты на любой вкус. Код выглядит так.

Читайте также:  Как добавить видео в ленту в одноклассниках

В команде для выполнения в cron прописывается путь к скрипту и только. В скрипте ставятся символы #!, а дальше просто пишем нужные нам команды на языке bash.

Случай второй

Выполнение скрипта при запросе из браузера приводит к выводу страницы в браузер. А при выполнении скрипта через cron приводит к выводу текста страницы в командную строку. Тут может быть несколько вариантов. Система может быть настроена на сохранение результатов вывода в консоль в виде файла. Причем файл этот может размешаться не в самом типичном месте. Постепенно это может забить всё пространство на диске. Часто под сайт дают место в 1 Гигабайт, 500 мегабайт. И даже встречались хостинги с 50 и 10 мегабайт под сайт.

Как вариант, вывод может быть перенаправлен на почтовый ящик, который заботливый хостер ненавязчиво подарил вам и прописал в настройках хостинга как email по умолчанию. При каждом выполнении скрипта весь текст, выводящийся в консоль, будет оформлен в письмо. Проблемы могут начаться неожиданно. Если задание cron выполняется часто, а у почты хостинга прописано ограничение на количество писем в день, почта просто ляжет (заблокируется провайдером как потенциальный спамер). И как неприятные последствия вы получите отказ в регистрации пользователей, уведомление пользователей и д.р., что подвязано на почту.

Решение старо как мир. Нужно сделать перенаправление вывода из консоли в пустоту. Делается это добавлением команды в конце команды крона.

Иногда админы хостинга берут на себя обязанность ненавязчиво поставить их за пользователя. Тут тоже может быть подводный камень.

Случай третий

Ситуация проста. Нужно отладить скрипт, запускаемый планировщиком. Можно попытаться сделать это средствами php, заставлять скрипт писать логии и т.п. Но есть способ куда проще, нужно перенаправить вывод в файл. Команда проста, дополнительный параметр к нашей команде:

Её надо добавить в конце команды:

Читайте также:  Где сохраняются игры на windows 10

Знак «>» указывает системе о перенаправлении вывода. Далее имя файла. В нашем случае указан абсолютный путь. Этот пример не составляет труда найти в интернете. Но тут нас может поджидать неприятность, вытекающая из второго случая. Заботливый хостер автоматически добавляет перенаправление вывода в конце нашей строки. И иногда маскирует это. В итоге получается команда вида:

В итоге вывод снова перенаправлен в пустоту и выходной файл будет пуст. Тут хостеру можно указать на его ошибку, что он уж слишком перехитрил с настройками. А можно сразу воспользоваться костылём. После команды перенаправления в файл закончить команду символами &&. Эти два символа используются в командной строке для объединения нескольких команд в одной строке. Они дают командной строке понять, что команда окончена и дальше идет следующая команда. К ней и применяется перенаправление в пустоту. В итоге и перенаправление в пустоту осталось и лог файл записан верно. Пример команды:

Случай четвёртый

Скрипт запустился, но работает не верно. Причиной тому — интерпретатор php при запуске из командной строки начинает работать в неправильно настроенном окружении, отличным от того, которое было бы при запуске через HTTP-сервер. Первый признак – скрипт не находит файлы, которые лежат с ним в одной директории, а начинает считать себя расположенным в корневой директории пользователя, которая на несколько папок выше чем корень сайта. Первое, что нужно проверить – переменное окружение и супер глобальный массив $_SERVER.

Первое, что находишь в интернете по этой проблеме – совет прописать в кроне команду смены директории:

Но в каких-то случаях это не помогает. Выход есть. Один из них взять всё в свои руки и задать недостающее окружение для работы скрипта. Информации про это в интернете уже больше.

Иногда просто хватает вписать следующий код в начале скрипта и пути снова становятся рабочими.

Как видите, всё прописано функциями и утруждаться настройками не надо.

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.