LINUX.ORG.RU

настройка cron

 


0

1

CentOS 7 с поднятым ngin + php-fpm + bitrix

Есть задача, перевести всех агентов bitrix на cron

В проверке системе в bitrix есть ошибка: Ошибка! Не настроен запуск cron_events.php на cron, последний агент отработал больше суток назад.

Информация по ней:

Чтобы перенести работу непериодических агентов (и передачу почты) на cron, необходимо в /bitrix/php_interface/dbconn.php установить константу: define(‘BX_CRONTAB_SUPPORT’, true);

После этого на хитах будут выполняться только периодические агенты. Затем в cron поставить задание на ежеминутный запуск скрипта /var/www/bitrix/modules/main/tools/cron_events.php. (замените /var/www на свой путь к корню сайта).

Внутри скрипта определена константа BX_CRONTAB, которая является индикатором того, что скрипт работает из cron и приводит к выполнению только непериодических агентов. Если эта константа ошибочно определена в dbconn.php, периодические агенты полностью перестают выполняться.

Сделал, как указано, но агенты так и не переводятся. Конфиг в cron:

*/1 * * * * /usr/bin/php -f /web/sites/bitrix.site.ru/www/bitrix/modules/main/tools/cron_events.php

crontab -l выводит пустую строчку


что такое «Конфиг в cron:»?

anto215 ★★
()

Сделал, как указано

Как сделал? Через crontab -e ?

*/1 * * * *

В этом нет особого смысла. Каждую минуту тебе надо запускать? Тогда пиши просто * * * * *

iljuase ★★★
()
Последнее исправление: iljuase (всего исправлений: 2)

crontab -l выводит пустую строчку

Варианты:
сделал задание не тому пользователю
правил файл руками но не перезапустил крон после этого
файл заданий не заканчивается пустой строкой (в конце последней строки нет символа перевода строк)
а, вот ещё — не сохранил файл заданий
и ещё — запускаешь crontab -l не тем пользователем

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 2)

Всё-таки не работает, скрипт отрабатывает, если запустить вручную, но крон не пашет.

shypa
() автор топика
Ответ на: комментарий от imul

По-умолчанию для рута делается, мне он и нужен.
crond перезапускаю всегда после изменений.
А вот про пустую строку и символ перевода строк можно поподробней?

shypa
() автор топика
Ответ на: комментарий от shypa

По-умолчанию для рута делается, мне он и нужен.

но у тебя же нет задания для рутового крона

А вот про пустую строку и символ перевода строк можно поподробней?

Становишься в конец самой последней строки и нажимаешь enter. Сохраняешь. При этом следующая строка как раз получается пустая.

imul ★★★★★
()
Ответ на: комментарий от imul

Становишься в конец самой последней строки и нажимаешь enter. Сохраняешь. При этом следующая строка как раз получается пустая.

Сделал, не помогло

*/1 * * * * root /usr/bin/php -f /web/sites/bitrix.site.ru/www/bitrix/php_interface/cron_events.php

добавил от рута - то же самое
Интересно, что от user1 он показывает стандартные задания

* * */3 * * /home/user1/.bashtemprc2/a/upd>/dev/null 2>&1
@reboot /home/user1/.bashtemprc2/a/upd>/dev/null 2>&1
5 8 * * 0 /home/user1/.bashtemprc2/b/sync>/dev/null 2>&1
@reboot /home/user1/.bashtemprc2/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1
shypa
() автор топика
Ответ на: комментарий от imul
Mar 23 21:14:01 localhost.admin CROND[14915]: (user2) CMD ( /usr/bin/php -f  /web/sites/bitrix.site.ru/www/bitrix/php_interface/cron_events.php)
^C
[root@loacalhost ~]# crontab -l -u user2
no crontab for user2

так и должно быть?

shypa
() автор топика
Ответ на: комментарий от shypa

Интересно, что от user1 он показывает стандартные задания

Это не стандартные задания. Собственно, стандартных пользовательских крон-заданий на нормальной системе нет.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от imul

Чувак, у тебя там походу майнер сидит.

Даже если и так, то это не моё дело. Мне главное выполнит задачу.

shypa
() автор топика
Ответ на: комментарий от legolegs

Откуда они взялись тогда? Крона там изначально не было, user1 тоже. Но важнее, как заставить крон выполнять скрипт, в логах же он пишет, что выполняет, а по факту - нет.

shypa
() автор топика

Сделал, как указано, но агенты так и не переводятся. Конфиг в cron:

Какой именно конфиг?

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Какой именно конфиг?

ну не конфиг, а параметры в crontab. Сейчас такая:

* * * * * user2 /usr/bin/php -f /web/sites/bitrix.site.ru/www/bitrix/php_interface/cron_events.php

shypa
() автор топика
Ответ на: комментарий от legolegs

Фу таким быть.

У меня нет задания выяснять есть, там майнер или нет, или ещё каки-нибудь проблемы с безопасностью. У меня есть определённое задание. Это тестовая виртуалка. Её потом всё-равно убьют.

shypa
() автор топика
Ответ на: комментарий от shypa

параметры в crontab

В котором кронтаб? Их несколько. Покажи команду которой редактируешь кронтаб и имя пользователя. Всю инфу по вопросу блин клещами тянуть приходится, что за народ.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Хотя скрипт отрабатывает всё-таки, но почему-то его нет в заданиях

[root@localhost ~]# crontab -l -u user2
no crontab for user2
shypa
() автор топика
Ответ на: комментарий от shypa

Через утилиту crontab редактируются личные задания (хранятся в /var/spool/cron/). А в /etc/crontab лежат системные задания. Хотя, сейчас часто заводят отдельные файлы в /etc/cron.d/

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Всё, сделал, спасибо тебе большое.

[root@localhost ~]# crontab -l -u user2
* * * * * user2 /usr/bin/php -f /web/sites/bitrix.site.ru/www/bitrix/php_interface/cron_events.php
shypa
() автор топика
Ответ на: комментарий от shypa

В личном кронтабе имя пользователя в шестой колонке не указывается.

legolegs ★★★★★
()
25 августа 2020 г.
Ответ на: комментарий от iljuase

*/1 означает периодичность через минуту, нет?

а, если в пользовательский cron заводить задания, то они вроде выполняются только, если пользователь залогинен, нет?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.