Правильная настройка cron

Re: Правильная настройка cron

от Vadim Tabunshchik -
Количество ответов: 33
Изображение пользователя Developers

Если запуск из командной строки, то так:

/usr/bin/php /path/to/moodle/admin/cli/cron.php

Если запускать веб-скрипт, то так:

/usr/bin/wget http://your.moodle.site/admin/cron.php

http://docs.moodle.org/26/en/Cron

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

Да настроил, прописал в файле crontab строку с примера http://docs.moodle.org/26/en/Cron

должен каждые 15 минут запускаться.

Как бы теперь проверить, ну по-идее надписи в Уведомлениях быть не должно.

Спасибо.

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers

Как бы теперь проверить

Посмотреть /var/log/cron или нет? улыбаюсь

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

Видимо нет, в этом каталоге нет такого файла. Будем искать улыбаюсь

Вот нашел в /var/log/syslog

Feb  6 15:39:01 sdo CRON[11340]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \;  -delete)
Feb  6 15:39:01 sdo CRON[11339]: (CRON) info (No MTA installed, discarding output)

Это нормально?

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers

Ubuntu ?

Это не по теме cron+Moodle, это запуск скрипта РНР для очистки сессий: http://webenterprise.ru/remove-old-php-sessions-in-debian

Feb  6 15:39:01 улыбаюсь Цитата: "Жестко заданны 9 и 39 минут…"

 

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

Да, Ubbuntu. То есть это лог не говорит о том, что cron работает и запускается каждые 15 минут?

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Alexey Piguzov -

Нет не могу я логи cron найти. Поставил для пробы резервное копирование на ближайшее время полчаса прождал, в папке указанной не появились бэкапы. Я в панике, как еще можно проверить работу cron? Подскажите, пожалуйста.

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers

Эта запись в syslog говорит о том, что cron работает и каждые 9-ю и 39-ю минуту запускается скрипт, который никакого отношения к Мудл не имеет.

Для Moodle добавьте к записи в crontab вывод логов в отдельный файл, например:

*/15 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/var/log/moodlecron.log 2>&1

и изучайте moodlecron.log

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

Спасибо, у меня так и написано. Значит все работает.

Вадим, добавил перенаправление в файл по Вашему образцу, но файл moodlecron.log не создается. Его же не нужно заранее создавать, насколько я понял. читал про перенаправление здесь хотел узнать что такое "2>&1" Узнал, понял. Но файл не создается грущу

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers

Узнал, понял. Но файл не создается

Видимо, не все поняли улыбаюсь

Ошибок нет, потому и файл не создается. 2>&1 - это как раз вывод ошибок. Хотите писать всё подряд в файл - уберите 2>&1, хотите писать в режиме добавления, а не затирания предыдущих записей, поставьте >>/var/log/… вместо >

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

Выходные прошли не трогал ничего, зашел в Уведомления там надпись Скрипт не запускался более 24 часов. То есть он не работает увы!

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Alexey Piguzov -

Разобрались, вроде работает. Оказывается в Ubuntu crontab он разный бывает. Один в etc который я и правил, а другой в каком-то tmp уже не помню, где точно. Вот они и не могли как следует синхронизироваться.

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle

Единственный легальный способ изменить crontab - это "crontab -e"

Он уж точно знает где нужно исправить файл и как об этом повестить службу.

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

Правда можно поступить по варварски и перезапустить cron для обновления расписания.

В ответ на Виталий Лавров

Re: Правильная настройка cron

от Alexander Matveyev -

Всем здравствуйте! Пытаюсь настроить cron через crontab (ubuntu server 14.04, apache2, moodle 2.7.13, php 5.5.9). В консоли пишу под своим пользователем:


sudo crontab -u www-data -e

*/15 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/var/log/moodlecron.log 2>&1Может я лишние пробелы ставлю? все равно пишет cron не запускался более 24 часов?

В ответ на Alexander Matveyev

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers
  1. Пользователя укажите, от чьего имени cron запускается и
  2. Вы так и написали /path/to/moodle? Нужно реальный путь к каталогу писать, например, /var/www/html или /var/www/moodle

*/15 * * * * www-data /usr/bin/php /var/www/html/admin/cli/cron.php >/var/log/moodlecron.log 2>&1

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexander Matveyev -
Так и делал, сейчас поправил и пользователя дописал. Все равно 0 реакции(


Приложение crontab.jpg
В ответ на Alexander Matveyev

Re: Правильная настройка cron

от Stanislav Nikolski -
У Вас в файл пустой строкой завершается?
В ответ на Stanislav Nikolski

Re: Правильная настройка cron

от Alexander Matveyev -

нет, все как на скриншоте выше

В ответ на Alexander Matveyev

Re: Правильная настройка cron

от Stanislav Nikolski -
Добавьте  пустую строку
В ответ на Stanislav Nikolski

Re: Правильная настройка cron

от Alexander Matveyev -

Спасибо, cron заработал, но если не писать  >/var/log/moodlecron.log 2>&1
Какие-то права нужны на запись? Пока пусть так.

В ответ на Alexander Matveyev

Re: Правильная настройка cron

от Stanislav Nikolski -
Вероятней всего, все-таки  log (root syslog) остальные только на чтение, пишите лог в другое место, или не пишите вообще зачем он Вам?

может пробела после > не хватает?
MAILTO=mail@mycompany.ru
*/5 * * * * /usr/bin/php /var/www/web/sites/moodle/admin/cli/cron.php
получаю письма при выполнении скрипта, crontab пользователя от которого работает апач


В ответ на Stanislav Nikolski

Re: Правильная настройка cron

от Alexey Piguzov -

Снова пробую настроить cron на новом сервере, все прописал вроде, но не работает и всё. Ubuntu 16 Moodle 3.1 Что сделал:

1. crontab -e прописал строку так же как и на старом сервере с проверкой в лог.

*       15      *       *       *       /usr/bin/php /var/www/moodle/admin/cli/cron.php > /home/user-moodle/moodlecron.log

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

$ /usr/bin/php /var/www/moodle/admin/cli/cron.php

Выдает ошибку и предупреждение:

Warning: require(/var/patch/config.php): failed to open stream: Permission denied in /var/path/moodle/admin/cli/cron.php on line 33
Fatal error: require(): Failed opening required '/var/path/config.php' (include_path='.:/usr/share/php') in /var/path/moodle/admin/cli/cron.php on line 33

Что-то с правами? Поставил вроде как на старом сервере, ну никак. В лог ничего не пишется грущу

33 строка такая же как и на старом сервере.

Может с PHP что не так, на старом 5.6 был, здесь 7.0 Хотя php - v все равно старую версию показывает.

В чем дело может быть подскажите уважаемые?

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers
прописал строку так же как и на старом сервере

А где пользователь, от чьего имени запускается крон? crontab -e - это вы для пользователя, под которым в ОСи работаете, крон настроили, а нужно для Апач: crontab -u www-data -e (в Ubuntu вроде Апач-пользователь www-data?)

Выдает ошибку и предупреждение:

Значит пользователь, под которым запускаете команду, не имеет прав на каталог/файл

Через sudo пробуйте

И что-то странное: /var/patch/config.php - это конфиг moodle? /var/path/moodle/admin/cli/cron.php - это что за путь? А в крон прописано /var/www/moodle/admin/cli/cron.php

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -
Да, Вадим спасибо! Действительно
crontab -u www-data -e
оказался пустой.
Добавил и в него строку. Единственно, через sudo запустил эту команду.

С путями всё нормально, это я менял здесь, но не везде видно, хотя зачем еще думаю, все скрывают путь с каталогом установки. Так что, с путями всё путем улыбаюсь
Подождем сработает ли.
Но смущает что вручную скрипт не отрабатывает, через sudo другая напасть:
sudo /usr/bin/php /var/www/moodle/admin/cli/cron.php 
!!! <p>Error: database driver problem detected</p>
<p>The site administrator should verify server configuration</p><p>PHP has not been properly configured with the MySQLi extension for it to communicate with MySQL. Please check your php.ini file or recompile PHP.</p> !!!
С этим то как бороться?

Попробовал вручную запустить
sudo /usr/bin/php7.0 /var/www/moodle/admin/cli/cron.php

То есть указал конкретно версию, скрипт отработал. Может как некорректно удалил 5.6 Так как php -v настойчиво показывает 5.6, а вот phpinfo 7.0 Может остатки 5.6 где-то мешают?

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers
Может как некорректно удалил 5.6 Так как php -v настойчиво показывает 5.6, а вот phpinfo 7.0 Может остатки 5.6 где-то мешают?

Естественно.

Команды /usr/bin/php -v и /usr/bin/php -m покажут РНР 5.6.х и модули для этой версии. И, похоже, что для РНР 5.6 не подключено расширение php_mysqli, поэтому ошибка «Error: database driver problem detected»

Если установлен РНР 7.0 в отдельный каталог, то во всех командах нужно писать /usr/bin/php7.0

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Alexey Piguzov -

А как его удалить правильно? Или он и не мешает? Можно оставить7

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Alexey Piguzov -

Удалил версию 5.6

apt-get remove --purge php5.6

php -v теперь показывает

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/pdo_mysql.so' - /usr/lib/php/20160303/pdo_mysql.so: undefined symbol: pdo_parse_params in Unknown on line 0
PHP 7.1.4-1+deb.sury.org~xenial+1 (cli) (built: Apr 11 2017 22:12:32) ( NTS )
Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.4-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies

То есть версия 7.1 хотя в отчете moodle /admin/phpinfo.php показывает 7.0

Скрипт из консоли заработал без указания версии

sudo /usr/bin/php /var/www/moodle/admin/cli/cron.php

Но выдает в начале предупреждение.

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/pdo_mysql.so' - /usr/lib/php/20160303/pdo_mysql.so: undefined symbol: pdo_parse_params in Unknown on line 0
Что ему еще нужно?

В ответ на Alexey Piguzov

Re: Правильная настройка cron

от Vadim Tabunshchik -
Изображение пользователя Developers

pdo_mysql для работы Мудл не требуется. Можно удалить расширение, можно отредактировать /etc/php/7.0/mods-available/pdo_mysql.ini, закомментировав строку extension=pdo_mysql.so, чтобы не подгружалось расширение. Не забываем рестартануть Апач sudo service apache2 restart

Если расширение нужно для других сайтов, попробуйте обновить софт и расширение.

В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Сергей Брыль -
Добрый день! Помогите пожалуйста с настройкой cron. Вроде все делаю по инструкции.... Думал получится разобраться самому, но не тут то было...

Moodle 3.9
Хостинг SWEB
Конфигурация
Команда CRON
Ссылка на файл CRON
В ответ на Сергей Брыль

Re: Правильная настройка cron

от Alexandre Scherbyna -
Вы же ежеминутно хотите крон запускать? Тогда в колонке Минута должна быть не единичка, а звездочка. Иначе крон будет запусчкаться на первой минуте каждого часа, дня, ...
В ответ на Vadim Tabunshchik

Re: Правильная настройка cron

от Дядя Миха -
Добрый день, удалось настроить в ipsmanger только на выполнение "curl --silent --compressed http://site.ru/moodle/admin/cron.php"
Правильно ли так делать? 

Выполнение команды : /usr/bin/php /var/www/site.ru/moodle/admin/cron.php

Выдает: Could not open input file: /var/www/site.ru/moodle/admin/cron.php