1С-Битрикс

Закончилось место на сервере: почему Битрикс перестал отправлять почту и как это исправить

Решение проблемы с отправкой почты при переполненном диске на 1С-Битрикс. Пошаговая инструкция по очистке места и настройке почтовых отправлений

sqlka.ruОпубликовано: Чтение: 4 мин.
Закончилось место на сервере: почему Битрикс перестал отправлять почту и как это исправить

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

Связь между дисковым пространством и работой почты

Когда диск заполняется на 100%, операционная система блокирует операции записи. Для почтовой системы это означает:

  • Невозможность создания временных файлов для обработки вложений
  • Остановку записи логов почтового сервера или почтового модуля Битрикс
  • Сбои в работе очереди отправки сообщений
  • Ошибки при попытке расширения таблиц базы данных, связанных с почтовыми событиями

Система может либо вообще не отправлять письма, либо отправлять их с большими задержками, а в логах появляются ошибки типа "Cannot create temporary file" или "No space left on device".

Экстренная диагностика: определяем степень проблемы

1. Проверка свободного места через командную строку

Подключитесь к серверу по SSH и выполните команду:

df -h

Результат покажет использование диска по разделам. Обратите внимание на колонку "Use%" — значение 100% или близкое к нему указывает на проблему.

2. Поиск "тяжелых" файлов и папок

Чтобы найти основные потребители дискового пространства, выполните:

# Показать 10 самых больших папок в домашней директории
du -sh /home/* 2>/dev/null | sort -rh | head -10

# Показать большие логи
du -sh /var/log/* 2>/dev/null | sort -rh | head -5

# Поиск больших файлов в корневой директории сайта
find /home/bitrix/www/ -type f -size +100M -exec ls -lh {} \;

Поэтапное решение проблемы

Этап 1: Быстрая очистка дискового пространства

Безопасная очистка в рамках Битрикс:

  1. Очистка кеша системы: Административная панель → Настройки → Настройки продукта → Производительность → Очистить весь кеш
  2. Удаление старых резервных копий: Если вы используете встроенное резервное копирование, проверьте папку /bitrix/backup/ и удалите старые архивы
  3. Очистка управляемого кеша: Папки /bitrix/managed_cache/ и /bitrix/cache/ можно очистить через интерфейс или вручную

Очистка системных логов (требует осторожности):

# Очистка логов веб-сервера (сохранение файлов, но обнуление содержимого)
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/nginx/access.log

# Удаление старых логов приложений
sudo find /home/bitrix/www/bitrix/modules/*/log/ -name "*.log" -type f -mtime +30 -delete

Очистка базы данных:

  1. Статистика и события: Административная панель → Настройки → Инструменты → Очистка сайта
  2. Корзины покупателей: Настройки → Настройки продукта → Интернет-магазин → Очистка корзины
  3. Старые сессии: В базе данных таблицы b_sec_session и b_session могут накапливать гигабайты данных

Этап 2: Восстановление отправки почты

После освобождения хотя бы 10-15% дискового пространства выполните:

  1. Перезапуск веб-сервера и почтовых служб:
    sudo systemctl restart apache2
    sudo systemctl restart nginx
    sudo systemctl restart postfix  # или ваш почтовый агент
  2. Проверка настроек SMTP в Битрикс: Настройки → Настройки модулей → Почта → SMTP-сервер
  3. Тестовая отправка письма: Настройки → Настройки модулей → Почтовые события → Тестирование отправки почты
  4. Проверка очереди сообщений: Если используется агент отправки, проверьте таблицу b_event в базе данных

Профилактика повторного возникновения проблемы

Настройка автоматического мониторинга

  1. Создайте скрипт для автоматической очистки:
    #!/bin/bash
    # Скрипт для автоматической очистки кеша и старых логов
    find /home/bitrix/www/bitrix/cache/ -type f -mtime +7 -delete
    find /home/bitrix/www/bitrix/managed_cache/ -type f -mtime +3 -delete
    mysql -u пользователь -pпароль имя_базы -e "DELETE FROM b_session WHERE DATE_ADD(date_last_activity, INTERVAL 30 DAY) < NOW();"
    echo "Очистка выполнена: $(date)" >> /var/log/bitrix_clean.log
  2. Настройте уведомления: Конфигурируйте мониторинг для отправки предупреждений при заполнении диска на 80%

Оптимизация хранения данных

  • Настройте ротацию логов с помощью logrotate
  • Перенесите большие медиафайлы в облачное хранилище
  • Включите сжатие изображений при загрузке
  • Регулярно архивируйте и удаляйте старые резервные копии

Когда проблема глубже: выбор инфраструктуры

Если проблема с нехваткой места возникает регулярно, несмотря на все оптимизации, возможно, текущая инфраструктура не соответствует потребностям вашего проекта. Современные сайты на 1С-Битрикс требуют:

  • Масштабируемое дисковое пространство: Возможность быстрого увеличения объема диска без простоя
  • SSD-хранилище: Для высокой скорости работы базы данных и файловой системы
  • Автоматическое резервное копирование: С возможностью хранения копий на отдельном носителе
  • Мониторинг ресурсов: Система уведомлений о приближении к лимитам использования

Регулярный аудит дискового пространства и своевременная оптимизация — ключевые практики для поддержания стабильной работы почтовой системы и всего сайта на 1С-Битрикс.

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

1С-Битрикс

Логирование в 1С-Битрикс: полное руководство для разработчика

Полное руководство по логированию в 1С-Битрикс: какие логгеры есть, как их настроить, форматировать сообщения и подключать к своим классам. Примеры кода и советы по использованию PSR-3

sqlka.ruЧтение: 4 мин.
← Все статьи