Openserver не работает cron

Форум

Крон (Планировщик заданий)

Крон (Планировщик заданий)

Доброго времени суток.

Поставил на выполнение 2 крон файла.

Первый файл: 1 раз каждые 3 минуты.
Второй файл: 1 раз каждые 4 часа.

Выглядит в настройках так:
Первый файл: */3 * * *
Второй файл: * /4 * * *

Почему то, выполнение скрипта проходит, но не в заданное ему время.
Если первый скрипт отрабатывает в норме, то 2-й запускается вместе с ним.

17 Jul 12:44:00 Start nnCron
17 Jul 12:44:00 READ D:\OpenServer\userdata\temp\cron\etc\taskinfo.txt ERROR # 2
Это нормальная реакция, с учетом что крон-файлы исполняет ?

Максим, спасибо за ответ.

Однако, ничего не вышло, видимо руки из заднего прохода.
прилагаю скрин

По логам смотрел, но то было вчера, сегодня странным образом всё работает как нужно (отрабатывает в нужное время).

Спасибо за помощь.

Такой вопрос ещё.
Бывает, но не часто при перезапуске сервера (именно перезапуск, open-server я не закрываю)

Не запускает memcached , писал в лог ошибку о подключении.

Конфигурация:
Apache 2.4.7
php 5.5.6
Memcahed 1.4.5

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

Источник

Форум

Полный путь (Openserver), cron задание

Полный путь (Openserver), cron задание

Подскажите пожалуйста, как узнать полный путь к папке с сайтом, чтобы добавить задание cron?
К примеру: /usr/local/bin/php /.

у меня папка с Openserverom на десктопе, а в phpinfo пишется, что полный путь на вирт. диске W:\domains\site.com. Указывать надо второй вариант? Подскажите пожалуйста!

У меня тоже не получается настроить запуск cron.
Путь пробовал такой:
C:\openserver\domains\proj051.tt\cron.php

Где бы прочитать — как правильно?

Добрый вечер, я прочитал инструкцию по крону, там есть 2 примера
периодичность выполнения работает, а сам скрипт не запускается, хотя если я его запускаю вручную то он работает.
это лог где то видел на форуме что если выдает Start result: 0, то вроде как все работает в норме, но, тем не менее требуемые вещи не происходят.

Дак можно задать вопрос? как мне сделать чтобы у меня выполнялся php скрипт раз в минуту?

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

Здравствуйте !
Не могу запустить задания по расписанию.
Время выполнения */1 * * * * (через 1 мин)
Вот задание — %progdir%\modules\php\%phpdriver%\php-win.exe -c %progdir%\modules\php\%phpdriver%\php.ini -q -f %sitedir%\buzuzelok.ru\pr_rasp.php
Задание вроде бы выполняется, но результата нет.

Ниже log планировщика.

09 Jun 16:37:51 Start nnCron
09 Jun 16:37:51 READ C:\OpenServer\userdata\temp\cron\etc\taskinfo.txt ERROR # 2
09 Jun 16:37:51 Load cron.tab
09 Jun 16:38:00 Start: C:\OpenServer\modules\php\PHP-5.2.17\php-win.exe -c C:\OpenServer\modules\php\PHP-5.2.17\php.ini -q -f C:\OpenServer\domains\buzuzelok.ru\pr_rasp.php
09 Jun 16:38:00 Start result: 0

В браузере скрипт выполняется правильно. Что мне нужно сделать ?

Это устаревшие пути, уже очень давно php.ini располагается в другом месте. Если вы используете не старую версию скрипта, то вот пример из актуального Руководства:

  • ГлавнаяСписок форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies

Создано на основе phpBB® Forum Software © phpBB Limited
Разработчик визуального стиля Arty — MrGaby

Контакты: , предоставляем бесплатную
удалённую техническую поддержку через TeamViewer

Источник

Форум

Не выполняется скрипт по заданию (cron)

Не выполняется скрипт по заданию (cron)

Здравстуйте, перед тем как писать сюда — перечитал все что связано с cron, как здесь так и на сторонних ресурсах. Почему-то не выполняется скрипт, хотя в логах все хорошо, ежеминутно (как и запланировал) выполняется. По рекомендациям для проверки создал два файла, cron.php и cron.txt которые находятся в корне сайта test.ru, в cron.php поместил скрипт:
Тоесть, при каждом выполнении скрипта cron.php — в файле cron.txt должно прописываться следующее: что и прописывается если запускать скрипт в ручном режиме (обновлением через браузер), через планировщик почему-то не работает, разные вариант перепробовал, уже незнаю где копать, пможет что-то упустил что лежит на поверхности?

Вот пути планировщика: файл php-win.exe и php.ini по данным путям — существуют, в системных файлах ничего не трогал и не менял после того как установил OpenServer (только месяц или полтора тому назад).

Re: Не выполняется скрипт по заданию (cron)

Re: Не выполняется скрипт по заданию (cron)

Re: Не выполняется скрипт по заданию (cron)

Re: Не выполняется скрипт по заданию (cron)

Так что считать результатом работы? Чего-то откуда-то качает и печатает в консоль.
Или это не весь скрипт?
Какие значения $url, $fields?
Что в $result и в $results?

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

Re: Не выполняется скрипт по заданию (cron)

Asmodey писал(а): Так что считать результатом работы? Чего-то откуда-то качает и печатает в консоль.
Или это не весь скрипт?
Какие значения $url, $fields?
Что в $result и в $results?

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

Значение $url — (‘http://site.ru/handler_api.php?api_key= . ProductCol’)
Дело в том, что мне нужно по api получать данные (количество) определенных товаров, которое периодически меняются.
По поводу конфигурации curl, $fields и т.д. возможно это лишнее, изначально пробовал так: В итоге получаю ответ от сервера в json формате, пример: Скрипт (запрос) работает при обновлении файла скрипта в браузере — меняется и количество, но через cron не выполняется((, а мне нужно автоматизировать этот процесс, что бы остатки обновлялись с определенной периодичностю.

Мне нужно в конечном итоге получать переменные со значением (300, 234, 76 и т.д.), что бы каждое из значений потом стилизировать и назназначить определенному товару, но это уже другая тема, нужно что бы все это работало (выполнялось) через cron

Источник

Настройка планировщика задач cron OpenServer

Приветствую вас, друзья 🙂

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

На уровне операционных систем (Windows, Linux, MacOS) уже существуют программы для решения поставленной задачи. Они называются «Планировщики задач«. Данный софт является стандартным и доступным по умолчанию (сразу после установки ОС).

Но сегодня наш разговор будет посвящён не им, а планировщику заданий cron, встроенный в OpenServer, который является, пожалуй, самой популярной WAMP-платформой (сборка Apache+MySql+PHP для Windows) на сегодняшний день.

Более подробно об OpenServer вы можете прочитать в статье, посвящённой программам для создания сайтов.

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

Общая информация о планировщике заданий cron OpenServer

Если вы являетесь пользователем UNIX-подобных систем, то программа «cron» должна быть вам знакома, т.к. это стандартный планировщик задач для данного класса операционных систем.

Первое, что бросается в глаза после общения со стандартным планировщиком задач Windows, – это то, что cron лишён графического интерфейса, и расписания задач нужно вносить в специальный файл crontab в соответствии с внутренним синтаксисом cron.

Скорее всего, это обстоятельство и стало причиной для интеграции данного планировщика задач в OpenServer, т.к. данный шаг лишал разработчиков необходимости выдумывать графический интерфейс.

В плане функционала лично я никаких отличий от стандартного cron Unix не заметил. Повторюсь, что cron OpenServer служит для создания расписаний выполнения различных задач (скриптов, программ и т.д.), как и стандартные планировщики на уровне ОС. Поэтому без него вполне можно обойтись 🙂

Единственный его плюс – это возможность использовать планировщик cron на ОС Windows, что может порадовать фанатов Unix-систем, которые вынуждены работать на детище Билла Гейтса и компании Microsoft.

Также cron OpenServer может подойти тем, кому не очень нравится стандартный планировщик задач Windows. Основной причиной может служить бедность настроек времени выполнения, т.к. возможности Task Scheduler (стандартный планировщик Windows) ограничены фиксированным списком, в котором нельзя вводить произвольные значения (несколько раз в час, день, периодичность и т.д.).

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

Насколько я знаю, в стандартных планировщиках такой возможности нет. Если в UNIX cron задачу ещё можно приостановить, закомментировав её расписание в файле crontab, то в Windows вам придётся попросту удалять задачу и создавать её каждый раз, когда необходимо выполнять снова – всё это крайне неудобно.

Поэтому если вы, как и я, являетесь разработчиком, работающим с ОС Windows, то планировщик задач cron OpenServer будет для вас удобнее стандартного Task Scheduler.

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

Настройка cron OpenServer

Для начала нам необходимо запустить сам OpenServer, для чего запускаем OpenServer.exe из директории, в которую у вас был установлен данный софт. Если вы вдруг забыли, куда его устанавливали, напомню, что по умолчанию OpenServer устанавливается в директорию «C:\OpenServer».

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

Перед запуском веб-сервера нажимаем на флажке любой кнопкой мыши и выбираем пункт «Настройки» для конфигурации планировщика задач cron OpenServer:

В открывшемся окне находим вкладку с названием «Планировщик заданий», которая выглядит так:

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

Теперь поговорим о синтаксисе заданий более подробно. Он такой же, как и для cron UNIX, т.е. для указания времени можно использовать цифры и символ «*», который означает «для всех».

Синтаксис cron OpenServer сильно упрощён, т.к. в оригинальном UNIX-планировщике, к примеру, для дней недели и месяцев доступны сокращённые варианты названий на английском. В нашем же случае такая запись приведёт к ошибке. Дни недели, к примеру, нужно будет указывать только цифрами, где 1 – это понедельник, а 7 – воскресенье.

Если поговорить о реальных примерах, то:

  • запись типа «1 * * * *» будет означать запуск задачи каждую первую минуту часа, т.е. она будет выполняться каждый час;
  • запись «*/2 * * * *» будет запускать задачу через каждые две минуты;
  • запись «2-4 * * * *» будет соответствовать запуску задачи 3 раза в течении каждого часа во 2,3 и 4 минуту;
  • запись «* * 1 * *» будет соответствовать ежемесячному запуску задачи первого числа месяца.

Думаю, что логика понятна. Если вы хотите больше примеров, то можете обратиться за помощью к Википедии, где есть очень неплохая и понятная (что редкость для вики 🙂 ) статья на русском языке по данному поводу.

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

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

С временными параметрами выполнения задач cron OpenServer мы разобрались, теперь поговорим о том, как правильно задавать путь к запускаемому объекту.

Запуск php-скриптов с помощью планировщика задач cron в OpenServer

Объектом может быть как исполнительный (.exe) файл программы и php-скрипт, так и обычные файлы, которые будут открываться в тех программах, для которых они предназначены. ОС определяет последнее по ассоциациям расширений файлов и указанных для них программ, которые хранятся в системном реестре.

Поскольку планировщик задач cron встраивался в OpenServer для разработчиков (равно как сама WAMP-сборка создавалась для них же), то он, в первую очередь, предназначен для запуска программных скриптов.

Вообще идея написания сегодняшней статьи возникла у меня после моего недавнего знакомства с CMS/CMF Magento, в рамках которого мне необходимо было реализовать автоматическую отправку писем на email покупателей порциями через равные промежутки времени.

В самом Magento есть встроенный планировщик cron, задачу для которого я создал в коде сайта. Соответственно, моей задачей было запускать скрипт, отвечающий за автоматический запуск задачи в Magento, на веб-сервере через равные промежутки. Вот такая вот петрушка 🙂

Путь к скрипту у меня был известен, но, указав его просто в cron-задаче в OpenServer, он просто открывался как обычный файл с интервалами, которые я указал.

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

Первая её часть – это путь к интерпретатору PHP, вторая – ссылка на файл конфигурации, а третья – это путь к самому скрипту, который нам необходимо будет запускать.

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

Также создатели OpenServer учли ситуацию, когда через cron необходимо будет запустить удалённый скрипт, т.е. доступ к нему будет осуществляться по url.

В данной ситуации необходимо будет воспользоваться встроенной в OpenServer утилитой WGet. Пример такой задачи будет выглядеть следующим образом:

В данном случае файл cron.php будет запрашиваться по протоколу http и ответ будет сохраняться во временный файл temp.txt, чтобы не скапливать мусор.

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

Возможность заманчивая, но в реальной практике её использование встречается не так уж и часто. Просто имейте ввиду, что данное действие возможно 😉

Возвращаясь к синтаксису задач cron OpenServer, вы могли заметить, что при описании задач допускается использовать предопределённые переменные. Они записываются в формате %переменная% и служат в качестве указателей различных директорий (каталога OpenServer, системного диска компьютера и т.д.)

С полным списком переменных и их значений вы можете познакомиться в официальной документации OpenServer.

Итак, на данном этапе вы ввели все необходимые данные для создания задачи для планировщика cron.

Перед сохранением конфигурации планировщика проверьте ещё раз список всех задач на экране настройки cron OpenServer и убедитесь, что объект с указанными вами ранее данными там присутствует.

Теперь нам остаётся нажать на кнопку «Сохранить», чтобы занести введённую нами информацию в файл конфигурации cron. После этого веб-сервер автоматически перезагрузится.

Если веб-сервер на этапе ввода задачи был остановлен, его необходимо будет запустить вручную, после чего все изменения сохраняться и задача начнёт выполняться.

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

Для доступа к нему необходимо в меню OpenServer выбрать пункт «Просмотр логов»:

В открывшемся окне ищем вкладку «Планировщик заданий» и видим там следующее:

Как видите, задача запустилась, причём, в путях к указанным файлам вместо внутренних переменных OpenServer появились реальные объекты.

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

Не зависимо от результатов выполнения задачи в логах постоянно пишется ошибка при чтении taskinfo.txt и выдается «result: 0».

Так что при возникновении каких-либо проблем с запуском задачи под cron OpenServer на логии надежды нет – можете не тратить время на их изучение и не прикреплять их к сообщениям на форумах и блогах 🙂

О запуске скриптов и отдельных файлов через определённые промежутки времени с помощью планировщика задач cron, входящего в комплект OpenServer, мы поговорили. Самое время рассмотреть, как можно запускать приложения с его помощью. И возможно ли это?

Запуск приложений с помощью планировщика задач cron в OpenServer

Вообще, если честно, сомневаюсь, что данная возможность предполагалась разработчиками OpenServer, когда они встраивали cron в своё детище 🙂

Об этом говорит полное отсутствие какой-либо информации по данному вопросу в официальной документации и Интернете в целом.

Скорее всего, разработчики решили не заморачиваться данным мануалом, т.к. предполагали, что для запуска приложений будут использоваться стандартные планировщики на уровне ОС.

Но, как я и говорил ранее, не все нравятся стандартные утилиты. Cron обходит Windows Task Scheduler уже, как минимум, возможностью задания гибкого расписания запуска задачи в отличие от 5-6 стандартных пунктов типа «ежедневно», «каждый месяц» и т.д.

Мне, в частности, с данной точки зрения cron нравится намного больше. Соответственно, я решил попробовать использовать его для запуска приложений Windows.

На предполагаемый вопрос «Зачем изобретать велосипед?» могу сказать, что это банально вопрос удобства. К примеру, запуск PHP-скриптов можно также произвести через стандартный планировщик, указав путь к установленному предварительно интерпретатору PHP. И зачем тогда нужен cron OpenServer, если не для удобства? 🙂

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

Но в случае с cron OpenServer всё оказалось не так-то просто 🙂

Для примера я решил вызывать установленную у меня на ПК известную многим утилиту CCleaner. Что я только не делал для её запуска через cron OpenServer:

    1. прописывал прямой путь к exe-файлу программы;
    2. делал ярлык экзешника и размещал его в корне диска (чтобы не было ошибки из-за пробелов в пути и названии);
    3. заключал путь в кавычки;
    4. пытался прописывать имя пользователя перед путём к CCleaner.exe.

Но, к сожалению, традиционный запуск программы ни в одном случае из перечисленных не произошёл.

На каком-то этапе, заглянув в диспетчер задач Windows, я обнаружил, что процесс CCleaner.exe запускается, причём многократно, но графической оболочки программы я на экране монитора не наблюдал.

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

Сам файл можно размещать в любой директории компьютера, но для надёжности рекомендуется использовать такой путь и имя для bat-файла, чтобы в них не было пробелов, т.к. данная задача может выполниться некорректно.

Если говорить о конкретном примере, то содержимое моего файла «D:\run.bat» было следующим:

Причём, путь лучше указывать в кавычках, чтобы не было проблем с пробелами в Program Files и именах программ и их каталогов.

После этого я создал задачу в cron OpenServer привычным способом, после чего увидел запуск программы воочию.

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

Из всего вышесказанного сделаю краткое резюме.

Если при разработке сайтов вы пользуетесь WAMP-платформой OpenServer, то для автоматического запуска скриптов, программ и просто отдельных файлов вы можете иcпользовать встроенный планировщик задач, который основывается на стандартном для UNIX-подобных систем планировщике cron.

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

На этом сегодняшняя статья подходит к концу. Мне было бы приятно услышать ваше мнение в виде комментариев и оценок с помощью звёзд под статьёй. Ну а если вы ещё и поделитесь ею со своими друзьями в соц. сетях – то за это вообще будет полагаться медаль за вклад в развитие проекта 🙂

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

До новых встреч! 🙂

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться 😉

Источник

Читайте также:  Scum admin helper как настроить
Оцените статью