ImpAnonym
@ImpAnonym
Lorem ipsum dolor sit amet

Почему не рабтоает cron?

Не работает строка:
* * * * * root test -f /home/bitrix/www/hook/log.php && { /usr/bin/php -f /home/bitrix/www/hook/log.php; } > /dev/log.txt 2>&1


Редактирую notepad++, файл лежит на удалённом сервере Битрикс24 (коробка).
Путь /etc/crontab

Полный код:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed


* * * * * bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && { /usr/bin/php -d sendmail_path="msmtp -t -i -a default" -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php; } >/dev/null 2>&1

0 8 1 * * root test -f /home/bitrix/www/hook/taskraschet.php && { /usr/bin/php -f /home/bitrix/www/hook/taskraschet.php; } > /dev/null 2>&1

* * * * * root test -f /home/bitrix/www/hook/log.php && { /usr/bin/php -f /home/bitrix/www/hook/log.php; } > /dev/log.txt 2>&1

0 9 1 * * root test -f /home/bitrix/www/hook/taskraschet.php && { /usr/bin/php -f /home/bitrix/www/hook/index.php; } > /dev/null 2>&1

0 9 11 * * root test -f /home/bitrix/www/hook/taskraschet.php && { /usr/bin/php -f /home/bitrix/www/hook/index.php; } > /dev/null 2>&1

0 12 * * 6 root /opt/webdir/bin/bx-dehydrated


В логе:
PHP Deprecated:  The mbstring.func_overload directive is deprecated in Unknown on line 0


В общем-то вопрос решил сам. Просто у меня в log.php код был:
file_put_contents('filename.txt', time() . "\n", FILE_APPEND);

А нужно было указывать путь ещё:
file_put_contents(__DIR__ . '/filename.txt', time() . " \n", FILE_APPEND);
  • Вопрос задан
  • 2445 просмотров
Пригласить эксперта
Ответы на вопрос 2
PHP Deprecated:  The mbstring.func_overload directive is deprecated in Unknown on line 0

молитесь на эту строку, пока она deprecated, после того как она уйдет из deprecated , битрикс перестанет работать ;)
поскольку на 0 они переходить не торопятся. а deprecated уже должен перейти в ворнинг еще в 7.1 но пока к счастью откладывают.
теперь по сути
в логе у вас ошибок нет ;)
/dev/log.txt 2>&1
эээ вы уверены т что это хорошая идея ?

Редактируйте файл так
crontab -e -u bitrix
поскольку если агент создает файл то он будет с владельцем от кого он запущен а это root соответственно вы не сможете через сайт вносить в них изменения.

Как вариант
*/1 * * * * ......

лично я запускаю агентов так
* * * * * wget -q -O- http://crm.topengineer.ru/11111.php > /dev/null 2>&1

при таком варианте подхватываются переменные среды и ядро битрикса, а так же версия php текущего сайта
не забывайте что в противном случае с консоли запускается php версия установленная по дефолту, да еще и по умолчанию как мод апач, у которого может даже mbstring..=0
Если на сервере более 1 версии пхп и 1 версии представления пхп то с консоли нужно или запускать нужную вам версию или иметь в виду что она может быть другой
убедиться легао с консоли напишите
php -v
подробно
php -i
но я проще запускаю через вгет.
Однако можно и вот так
*/1 * * * * /usr/bin/php -d short_open_tag=1 -dmbstring.internal_encoding=UTF-8 -f /var/www/site.ru/web/local/php_interface/cronSend.php
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
/dev/log.txt


А что это у вас за устройство такое?
Может быть нужно указать правильный путь к файлу, куда можно писать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы