Команды управления сайтами 
Команды для работы с сайтами: просмотр списка и подробной информации о сайте.
site:list 
Выводит список всех сайтов с информацией о домене и директории.
Синтаксис 
php bitrix.php site:list [опции]Опции 
--active- показать только активные сайты-v,-vv- подробный вывод
Примеры использования 
# Список всех сайтов
php bitrix.php site:list
# Только активные сайты
php bitrix.php site:list --active
# С подробной информацией
php bitrix.php site:list -vВывод команды 
Команда выводит таблицу со следующей информацией:
- ID - идентификатор сайта
 - Название - название сайта
 - Домен - основной домен сайта
 - Директория - корневая директория сайта
 - Активен - статус активности
 - По умолчанию - является ли сайт основным
 - Язык - языковая версия (в подробном режиме)
 - Email - email для уведомлений (в подробном режиме)
 - Дополнительные домены - список дополнительных доменов (в подробном режиме)
 
site:info 
Выводит подробную информацию о конкретном сайте.
Синтаксис 
php bitrix.php site:info <id>Аргументы 
id- идентификатор сайта (например,s1,s2)
Примеры использования 
# Информация о сайте s1
php bitrix.php site:info s1
# Информация о сайте s2
php bitrix.php site:info s2
# С подробным выводом
php bitrix.php site:info s1 -vВывод команды 
Команда выводит детальную информацию о сайте:
Основная информация:
- ID сайта
 - Название
 - Активность
 - Статус (по умолчанию или нет)
 - Сортировка
 
Домены:
- Основной домен
 - Список всех доменов (включая дополнительные)
 - Протокол (HTTP/HTTPS)
 
Пути:
- Корневая директория
 - Абсолютный путь
 
Локализация:
- Язык интерфейса
 - Кодировка
 - Направление письма (LTR/RTL)
 - Формат даты и времени
 
Контакты:
- Email администратора
 - Email для уведомлений
 - Имя отправителя
 
Настройки:
- Шаблон по умолчанию
 - Модули, подключенные к сайту
 - Лимиты дискового пространства
 
Использование в автоматизации 
Аудит сайтов 
#!/bin/bash
# Создание отчета по всем сайтам
cd /var/www/bitrix
REPORT="/tmp/sites_report_$(date +%Y%m%d).txt"
{
    echo "=== Отчет по сайтам Битрикс ==="
    echo "Дата: $(date)"
    echo ""
    
    echo "=== Список всех сайтов ==="
    php bitrix.php site:list -v
    echo ""
    
    # Детальная информация по каждому сайту
    for site_id in $(php bitrix.php site:list | grep -oP '^\s*\K\S+' | tail -n +2); do
        echo "=== Детали сайта: $site_id ==="
        php bitrix.php site:info "$site_id"
        echo ""
    done
    
} > "$REPORT"
cat "$REPORT"Проверка доступности сайтов 
#!/bin/bash
# Проверка доступности всех сайтов
cd /var/www/bitrix
echo "Проверка доступности сайтов..."
# Получить список активных сайтов
php bitrix.php site:list --active | while read -r line; do
    # Извлечь домен из строки
    domain=$(echo "$line" | awk '{print $3}')
    
    if [ -n "$domain" ] && [ "$domain" != "Домен" ]; then
        echo -n "Проверка $domain: "
        
        if curl -s -o /dev/null -w "%{http_code}" "http://$domain" | grep -q "200\|301\|302"; then
            echo "✓ OK"
        else
            echo "✗ НЕДОСТУПЕН"
            echo "ВНИМАНИЕ: Сайт $domain недоступен" | \
                mail -s "Site Down Alert" admin@example.com
        fi
    fi
doneЭкспорт конфигурации сайтов 
#!/bin/bash
# Экспорт конфигурации всех сайтов в JSON
cd /var/www/bitrix
OUTPUT_FILE="/backup/sites_config_$(date +%Y%m%d).json"
echo "{" > "$OUTPUT_FILE"
echo '  "sites": [' >> "$OUTPUT_FILE"
# Получить список ID сайтов
SITE_IDS=($(php bitrix.php site:list | grep -oP '^\s*\K\S+' | tail -n +2))
for i in "${!SITE_IDS[@]}"; do
    site_id="${SITE_IDS[$i]}"
    
    echo "    {" >> "$OUTPUT_FILE"
    echo "      \"id\": \"$site_id\"," >> "$OUTPUT_FILE"
    
    # Получить информацию о сайте
    php bitrix.php site:info "$site_id" >> "$OUTPUT_FILE"
    
    echo "    }" >> "$OUTPUT_FILE"
    
    # Добавить запятую, если это не последний элемент
    if [ $i -lt $((${#SITE_IDS[@]} - 1)) ]; then
        echo "," >> "$OUTPUT_FILE"
    fi
done
echo "  ]" >> "$OUTPUT_FILE"
echo "}" >> "$OUTPUT_FILE"
echo "Конфигурация сохранена в $OUTPUT_FILE"Мониторинг изменений доменов 
#!/bin/bash
# Мониторинг изменений в настройках сайтов
cd /var/www/bitrix
CURRENT="/tmp/sites_current.txt"
PREVIOUS="/var/cache/sites_previous.txt"
# Получить текущую конфигурацию
php bitrix.php site:list -v > "$CURRENT"
# Сравнить с предыдущей
if [ -f "$PREVIOUS" ]; then
    if ! diff -q "$PREVIOUS" "$CURRENT" > /dev/null; then
        echo "Обнаружены изменения в настройках сайтов:"
        diff "$PREVIOUS" "$CURRENT"
        
        # Отправить уведомление
        diff "$PREVIOUS" "$CURRENT" | \
            mail -s "Sites Configuration Changed" admin@example.com
    fi
fi
# Сохранить текущую конфигурацию
cp "$CURRENT" "$PREVIOUS"Генерация виртуальных хостов 
#!/bin/bash
# Автоматическая генерация конфигурации виртуальных хостов Nginx
cd /var/www/bitrix
NGINX_CONF_DIR="/etc/nginx/sites-available"
DOCUMENT_ROOT="/var/www"
# Получить информацию о каждом сайте
php bitrix.php site:list --active | tail -n +2 | while read -r line; do
    site_id=$(echo "$line" | awk '{print $1}')
    domain=$(echo "$line" | awk '{print $3}')
    
    if [ -n "$domain" ] && [ "$domain" != "---" ]; then
        cat > "$NGINX_CONF_DIR/$domain.conf" <<EOF
server {
    listen 80;
    server_name $domain;
    
    root $DOCUMENT_ROOT;
    index index.php;
    
    location / {
        try_files \$uri \$uri/ /bitrix/urlrewrite.php\$is_args\$args;
    }
    
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
    }
}
EOF
        
        echo "Создана конфигурация для $domain"
    fi
done
echo "Не забудьте перезагрузить Nginx: sudo systemctl reload nginx"Продвинутые сценарии 
Автоматическая настройка SSL 
#!/bin/bash
# Настройка SSL для всех активных сайтов с помощью Let's Encrypt
cd /var/www/bitrix
# Получить список доменов активных сайтов
DOMAINS=($(php bitrix.php site:list --active | awk 'NR>1 {print $3}' | grep -v "---"))
for domain in "${DOMAINS[@]}"; do
    echo "Настройка SSL для $domain"
    
    # Получить сертификат Let's Encrypt
    sudo certbot --nginx -d "$domain" --non-interactive --agree-tos --email admin@example.com
    
    if [ $? -eq 0 ]; then
        echo "✓ SSL настроен для $domain"
    else
        echo "✗ Ошибка настройки SSL для $domain"
    fi
doneСинхронизация настроек между сайтами 
#!/bin/bash
# Копирование настроек одного сайта на другие
SOURCE_SITE="s1"
TARGET_SITES=("s2" "s3")
cd /var/www/bitrix
# Получить настройки исходного сайта
echo "Получение настроек сайта $SOURCE_SITE..."
php bitrix.php site:info "$SOURCE_SITE" > /tmp/source_site.txt
# Применить к целевым сайтам (требуется дополнительная логика)
for target in "${TARGET_SITES[@]}"; do
    echo "Применение настроек к сайту $target..."
    # Здесь должна быть логика применения настроек
    # Например, через API или прямые запросы к БД
doneСоздание резервной копии настроек 
#!/bin/bash
# Резервное копирование настроек всех сайтов
cd /var/www/bitrix
BACKUP_DIR="/backup/sites/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
# Экспорт списка сайтов
php bitrix.php site:list -v > "$BACKUP_DIR/sites_list.txt"
# Экспорт детальной информации по каждому сайту
SITE_IDS=($(php bitrix.php site:list | awk 'NR>1 {print $1}'))
for site_id in "${SITE_IDS[@]}"; do
    php bitrix.php site:info "$site_id" > "$BACKUP_DIR/site_${site_id}_info.txt"
done
# Создать архив
tar -czf "$BACKUP_DIR.tar.gz" -C "$(dirname $BACKUP_DIR)" "$(basename $BACKUP_DIR)"
rm -rf "$BACKUP_DIR"
echo "Резервная копия сохранена: $BACKUP_DIR.tar.gz"Troubleshooting 
Сайт не отображается в списке 
Проблема: Созданный сайт не появляется в списке
Решения:
- Проверьте базу данных: 
SELECT * FROM b_lang; - Очистите кеш: 
php bitrix.php cache:clear - Проверьте, что сайт создан через админ-панель корректно
 - Проверьте права доступа к таблице b_lang
 
Неправильная информация о сайте 
Проблема: Команда выводит устаревшую или неправильную информацию
Решения:
- Очистите кеш: 
php bitrix.php cache:clear - Проверьте данные в базе напрямую
 - Убедитесь, что используете актуальную версию модуля
 - Перезагрузите PHP-FPM: 
sudo systemctl restart php-fpm 
Ошибка "Сайт не найден" 
Проблема: При запросе информации о сайте возникает ошибка
Решения:
- Проверьте правильность ID сайта: 
php bitrix.php site:list - Убедитесь, что используете правильный формат ID (например, 
s1, а не1) - Проверьте существование сайта в базе данных
 
Полезные советы 
💡 Документируйте конфигурацию - регулярно экспортируйте настройки сайтов
💡 Мониторьте изменения - отслеживайте изменения в конфигурации автоматически
💡 Автоматизируйте проверки - настройте мониторинг доступности сайтов
💡 Создавайте резервные копии - сохраняйте настройки перед внесением изменений
💡 Используйте шаблоны - автоматизируйте создание конфигураций веб-серверов
Смотрите также 
- Команды отладки - диагностика проблем с конфигурацией
 - Команды резервного копирования - создание бэкапов
 - Официальная документация Битрикс по мультисайтовости