Часто возникает задача, которую необходимо выполнять с определенной периодичностью по расписанию.
Добавление задачи в cron
Можно редактировать файл cron из консоли вручную через vim или nano.Для начала найдите в папке сайта /bitrix/crontab/ файл crontab.cfg. Если он отсутствует, добавьте его.
Все необходимые задачи просто добавляйте в этот файл.
Дальше, после добавления задач, заходите в терминал и пишете команду:
crontab /home/bitrix/ext_www/site.ru/bitrix/crontab/crontab.cfg -u bitrix
В ней вы указываете путь к вашему файлу /crontab.cfg на сервере, а -u bitrix мы дописываем, если мы зашли в терминал под пользователем root, а не bitrix. В таком случае у нас добавятся задачи, выполняемые от пользователя bitrix, что нам и требуется.
Готово, задачи добавлены!
Для просмотра списка установленных на cron задач можно выполнить в терминале команду:
crontab -l -u bitrix
Примечание
- Этот способ подходит, если у вас одно ядро Битрикс на сервере, т.к. если у вас две копии ядра, у каждого будет свой файл crontab.cfg и они будут затирать задачи друг друга.
- Также надо иметь ввиду что задачи надо добавлять от пользователя bitrix.
- В cron не должно быть задач, добавленных вручную ранее. Иначе они будут затерты. Перенесите их в /bitrix/crontab/crontab.cfg
- В cron недоступен $_SERVER["DOCUMENT_ROOT"], поэтому учтите это. Если он используется в вашем скрипте, можно его указать явно:
define("NO_AGENT_CHECK", true);
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
$_SERVER["DOCUMENT_ROOT"] = "/home/bitrix/ext_www/site.ru";
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); 