среда, 15 октября 2014 г.

Побеждаем планировщик задач

Я уже рассказывал про свои попытки настроить планировщик задач муцдле. Тогда так и смог решить проблему. Но есть хороший способ - отправить проблему в подсознание. Через какое-то время все равно оттуда всплывет. Главное, не забыть, что туда ее оправил ))) Забудешь - там и будет лежать... 
Я еще написал в форум мудла про проблему, получил от товарища следующий ответ

Это хостинг ?
Есть подозрение, что php.ini для веб-сервера и для php-cli разные. Это можно проверить сравнив вывод "php -i" с тем что показывает moodle в информации о php.
Есть другой способ - использовать wget/curl в cron 
 На всякий случай посмотрел, что такое wget. В википедии написано, что консольная программа для загрузки файлов по сети. Позволяет скачивать и загружать по сети любые файлы. После этого проблема и была отправлена в подсознание. Выдернуть ее оттуда пришлось, когда через пару дней стал получать сообщения на почту

/usr/local/cpanel/bin/jailshell: www.cp526266.cpanel.tech-logol.ru/public_html/moodle/admin/cron.php: No such file or directory
Во-первых удивился, что через несколько дней. Думал, изменились настройки хостинга. (Позже выяснилось, что письма попадали в спам и когда спам-корзина переполнилась, начали приходить в почту). Из сообщения видно, что скрипт пытается выполниться. Для начала проверил разрешения. Все оказалось правильно: везде стоит 755. Дальше попробовал запустить вручную, через браузер. Оказалось, запускается строка http://www.cp526266.cpanel.tech-logol.ru/moodle/admin/cron.php Исправил в кроме. Результат тот же.
Решил еще раз погуглить на тему /usr/local/cpanel/bin/jailshell: Оказывается, это оболочка для исполнения внешних команд. Пишут всякое разное. Еще раз попалась на глаза сообщение с командой wget. Интуитивно пишу в таблице крона строку
wget http://cp526266.cpanel.tech-logol.ru/moodle/admin/cron.php
В ответ получаю по почте сообщение
--2014-10-15 17:05:02--  http://cp526266.cpanel.tech-logol.ru/moodle/admin/cron.phpResolving cp526266.cpanel.tech-logol.ru... 91.195.124.142Connecting to cp526266.cpanel.tech-logol.ru|91.195.124.142|:80... connected.HTTP request sent, awaiting response... 200 OKLength: unspecified [text/plain]Saving to: “cron.php”
     0K .........                                              1.86K=5.3s
2014-10-15 17:05:19 (1.86 KB/s) - “cron.php” saved [10151]
Смысл примерно такой команда wget пытается соединиться с сервером хостинга, посылает ему запрос на скачивание файла admin/cron.php. данный скрипт запускается и выводит сообщения, которые команда пытается сохранить в файле "cron.php" Уже радует! Остается немного на всякий случай подавить вывод в файл, для чего в конце строки пишем -o null. И проверить в мудле (Раздел "Администррование"-> "Сервер" -> "Планировщик задач").
Видим отрадную картину.

Cron работает. Все мудловские задачи своевременно выполняются. Так-то!

Лицензия Creative Commons
Произведение «Блог "Эффективное дистанционное образование"» созданное автором по имени А.Н.Гущин, публикуется на условиях лицензии Creative Commons «Attribution» («Атрибуция») 3.0 Непортированная.
Основано на произведении с an1954.blogspot.ru. на следующий (также выделен полужирным шрифтом):