Команды управления агентами 
Команды для работы с агентами Битрикс: просмотр списка и запуск агентов.
agent:list 
Выводит список агентов с информацией о статусе и времени выполнения.
Синтаксис 
php bitrix.php agent:list [опции]Опции 
--limit=N- ограничить количество выводимых агентов (по умолчанию: все)--active- показать только активные агенты--inactive- показать только неактивные агенты--module=<module>- фильтр по модулю-v,-vv- подробный вывод
Примеры использования 
# Список всех агентов
php bitrix.php agent:list
# Только первые 50 агентов
php bitrix.php agent:list --limit=50
# Только активные агенты
php bitrix.php agent:list --active
# Только неактивные агенты
php bitrix.php agent:list --inactive
# Агенты конкретного модуля
php bitrix.php agent:list --module=main
php bitrix.php agent:list --module=catalog
# Активные агенты каталога
php bitrix.php agent:list --active --module=catalog
# С подробной информацией
php bitrix.php agent:list -vВывод команды 
Команда выводит таблицу со следующей информацией:
- ID - идентификатор агента
 - Название - имя функции агента
 - Модуль - модуль, которому принадлежит агент
 - Активен - статус активности
 - Следующий запуск - дата и время следующего выполнения
 - Интервал - интервал выполнения в секундах
 - Приоритет - приоритет выполнения (в подробном режиме)
 - Последний запуск - дата последнего выполнения (в подробном режиме)
 - Пользователь - ID пользователя, если агент пользовательский (в подробном режиме)
 
agent:run 
Запускает все активные агенты, которые должны быть выполнены.
Синтаксис 
php bitrix.php agent:run [опции]Опции 
--module=<module>- запустить агенты только указанного модуля--force- принудительный запуск всех агентов (игнорировать время следующего запуска)-v,-vv- подробный вывод прогресса
Примеры использования 
# Запуск всех агентов, которые должны быть выполнены
php bitrix.php agent:run
# Запуск агентов конкретного модуля
php bitrix.php agent:run --module=catalog
php bitrix.php agent:run --module=sale
# Принудительный запуск всех агентов
php bitrix.php agent:run --force
# С подробным выводом
php bitrix.php agent:run -v
# Запуск агентов модуля с подробным выводом
php bitrix.php agent:run --module=main -vvКак это работает 
- Команда проверяет список активных агентов
 - Определяет агенты, время выполнения которых наступило
 - Запускает каждый агент последовательно
 - Обновляет время следующего запуска
 
Что делают агенты 
Агенты в Битрикс выполняют различные фоновые задачи:
Системные агенты:
- Очистка устаревших данных
 - Отправка почты из очереди
 - Обновление статистики
 - Проверка лицензий
 - Удаление временных файлов
 
Модуль каталога:
- Пересчет цен
 - Обновление курсов валют
 - Обновление скидок
 - Управление остатками
 
Модуль продаж:
- Отмена неоплаченных заказов
 - Отправка уведомлений
 - Обработка повторяющихся заказов
 - Обновление статусов доставки
 
Режимы запуска агентов 
Через веб-запросы (хит) 
По умолчанию агенты запускаются при обращении к сайту. Не рекомендуется для продакшена.
Через cron (рекомендуется) 
# Запуск агентов каждые 5 минут
*/5 * * * * cd /var/www/bitrix && php bitrix.php agent:runЧерез systemd service 
Создание постоянного процесса для обработки агентов.
Использование в автоматизации 
Базовая настройка cron 
# Добавить в crontab
# Запуск агентов каждые 5 минут
*/5 * * * * cd /var/www/bitrix && php bitrix.php agent:run >> /var/log/bitrix-agents.log 2>&1Раздельный запуск по модулям 
#!/bin/bash
# Запуск агентов разных модулей с разной частотой
cd /var/www/bitrix
# Основные агенты - каждые 5 минут
if [ $(($(date +\%M) % 5)) -eq 0 ]; then
    php bitrix.php agent:run --module=main
fi
# Агенты каталога - каждые 15 минут
if [ $(($(date +\%M) % 15)) -eq 0 ]; then
    php bitrix.php agent:run --module=catalog
fi
# Агенты продаж - каждые 30 минут
if [ $(($(date +\%M) % 30)) -eq 0 ]; then
    php bitrix.php agent:run --module=sale
fiМониторинг выполнения агентов 
#!/bin/bash
# Проверка и запуск агентов с логированием
cd /var/www/bitrix
LOG_FILE="/var/log/bitrix-agents-$(date +%Y%m%d).log"
{
    echo "=== Запуск агентов: $(date) ==="
    
    # Показать агенты, готовые к выполнению
    echo "Агенты к выполнению:"
    php bitrix.php agent:list --active -v
    
    # Запустить агенты
    echo "Выполнение:"
    php bitrix.php agent:run -v
    
    echo "=== Завершено: $(date) ==="
    echo ""
} >> "$LOG_FILE" 2>&1Запуск с контролем времени выполнения 
#!/bin/bash
# Запуск агентов с ограничением времени выполнения
cd /var/www/bitrix
# Установить timeout 5 минут
timeout 300 php bitrix.php agent:run -v
if [ $? -eq 124 ]; then
    echo "ВНИМАНИЕ: Превышено время выполнения агентов" | \
        mail -s "Agents Timeout Alert" admin@example.com
fiПринудительный запуск всех агентов 
#!/bin/bash
# Экстренный запуск всех агентов (например, после восстановления системы)
cd /var/www/bitrix
echo "ВНИМАНИЕ: Принудительный запуск всех агентов"
echo "Начало: $(date)"
php bitrix.php agent:run --force -vv
echo "Завершено: $(date)"Создание systemd service 
# /etc/systemd/system/bitrix-agents.service
[Unit]
Description=Bitrix Agents Runner
After=network.target mysql.service
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/var/www/bitrix
ExecStart=/usr/bin/php bitrix.php agent:run
Restart=always
RestartSec=300
# Логирование
StandardOutput=append:/var/log/bitrix-agents.log
StandardError=append:/var/log/bitrix-agents-error.log
[Install]
WantedBy=multi-user.targetАктивация:
sudo systemctl enable bitrix-agents.service
sudo systemctl start bitrix-agents.service
sudo systemctl status bitrix-agents.serviceПродвинутые сценарии 
Умный запуск с проверкой нагрузки 
#!/bin/bash
# Запуск агентов только при низкой нагрузке системы
cd /var/www/bitrix
# Получить нагрузку системы
LOAD=$(uptime | awk -F'load average:' '{ print $2 }' | cut -d',' -f1 | xargs)
LOAD_INT=$(echo "$LOAD" | cut -d'.' -f1)
# Запустить только если нагрузка менее 3.0
if [ "$LOAD_INT" -lt 3 ]; then
    php bitrix.php agent:run
else
    echo "Высокая нагрузка ($LOAD), запуск агентов отложен"
fiПриоритетный запуск критичных агентов 
#!/bin/bash
# Сначала запуск критичных агентов, затем остальных
cd /var/www/bitrix
# Критичные модули
CRITICAL_MODULES=("main" "sale")
# Обычные модули
NORMAL_MODULES=("catalog" "iblock")
# Запуск критичных агентов
for module in "${CRITICAL_MODULES[@]}"; do
    echo "Запуск критичных агентов: $module"
    php bitrix.php agent:run --module="$module"
done
# Пауза
sleep 10
# Запуск обычных агентов
for module in "${NORMAL_MODULES[@]}"; do
    echo "Запуск обычных агентов: $module"
    php bitrix.php agent:run --module="$module"
doneАудит агентов 
#!/bin/bash
# Создание отчета по агентам
cd /var/www/bitrix
REPORT="/tmp/agents_report_$(date +%Y%m%d).txt"
{
    echo "=== Отчет по агентам Битрикс ==="
    echo "Дата: $(date)"
    echo ""
    
    echo "=== Все агенты ==="
    php bitrix.php agent:list -v
    echo ""
    
    echo "=== Активные агенты ==="
    php bitrix.php agent:list --active
    echo ""
    
    echo "=== Неактивные агенты ==="
    php bitrix.php agent:list --inactive
    echo ""
    
} > "$REPORT"
# Отправка отчета
mail -s "Bitrix Agents Report" admin@example.com < "$REPORT"Troubleshooting 
Агенты не выполняются 
Проблема: Агенты не запускаются автоматически
Решения:
- Проверьте настройку cron: 
crontab -l - Убедитесь, что агенты активны: 
php bitrix.php agent:list --active - Проверьте настройки в 
.settings.php - Проверьте логи cron: 
/var/log/cronили/var/log/syslog - Запустите агенты вручную для проверки: 
php bitrix.php agent:run -v 
Агенты выполняются слишком долго 
Проблема: Выполнение агентов занимает много времени
Решения:
- Используйте опцию 
-vдля определения медленных агентов - Разделите запуск агентов по модулям
 - Увеличьте интервал запуска для некритичных агентов
 - Оптимизируйте код медленных агентов
 - Увеличьте 
max_execution_timeв php.ini 
Агент зависает 
Проблема: Конкретный агент вызывает зависание
Решения:
- Определите проблемный агент: 
php bitrix.php agent:list -v - Временно деактивируйте проблемный агент через БД
 - Проверьте код агента на наличие бесконечных циклов
 - Проверьте логи PHP на наличие ошибок
 - Используйте timeout для защиты: 
timeout 300 php bitrix.php agent:run 
Дублирование выполнения 
Проблема: Агенты выполняются несколько раз одновременно
Решения:
- Убедитесь, что cron настроен правильно (нет дублирующих записей)
 - Используйте блокировки (flock) в скрипте запуска:bash
flock -n /tmp/agents.lock php bitrix.php agent:run - Проверьте, что нет параллельных процессов: 
ps aux | grep agent 
Полезные советы 
💡 Используйте cron - не полагайтесь на автоматический запуск через хиты
💡 Мониторьте выполнение - логируйте запуск и результаты работы агентов
💡 Разделяйте по модулям - запускайте критичные агенты чаще, обычные - реже
💡 Контролируйте время - используйте timeout для защиты от зависаний
💡 Проверяйте регулярно - периодически проверяйте список и статус агентов
💡 Оптимизируйте код - следите за производительностью пользовательских агентов
Смотрите также 
- Команды кеша - агенты часто работают с кешем
 - Примеры cron - настройка автоматического запуска агентов
 - Официальная документация Битрикс по агентам