Не создаётся резервная копия - причины по убыванию частоты
Резервное копирование обрывается с ошибкой, зависает на половине или готовый архив не скачивается.
Как проверить
Смотрим место и содержимое каталога копий:
df -h /home/bitrix/wwwdu -sh /home/bitrix/www/bitrix/backupls -lhS /home/bitrix/www/bitrix/backup | headКаталог копий внутри сайта - первая причина заполненного диска. Копия делается рядом с сайтом, потом попадает в следующую копию, и объём растёт лавиной.
Смотрим лимиты PHP, в которые упирается копирование:
php -r 'foreach (["max_execution_time","memory_limit","upload_max_filesize"] as $k) printf("%-22s %s\n", $k, ini_get($k));'Копирование идёт шагами из веб-запроса и подчиняется тем же ограничениям, что и обычная страница. Обрыв на середине почти всегда упирается в одно из этих трёх значений.
Причины
-
Кончилось место на диске примерно 40% случаев
ПризнакКопирование обрывается на середине, в логе ошибки записи, сайт при этом работает.
ПроверкаСмотрим свободное место и размер каталога резервных копий внутри сайта.
Что делатьУдаляем старые архивы и переносим хранение в облако или на внешний диск, а не рядом с сайтом.
-
Копирование не укладывается в лимиты PHP примерно 30% случаев
ПризнакПроцесс зависает на одном и том же проценте и обрывается без сообщения.
ПроверкаСверяем время шага и размер архива с ограничениями времени выполнения и памяти.
Что делатьУменьшаем размер части архива в настройках модуля либо переходим на копирование средствами сервера.
-
Нет прав на каталог резервных копий примерно 20% случаев
ПризнакСообщение о нехватке прав появляется сразу, до начала копирования.
ПроверкаПроверяем владельца и права каталога
bitrix/backupи путь, заданный в настройках.Что делатьВозвращаем каталогу владельца веб-сервера: после переноса сайта права часто остаются от прежнего пользователя.
-
Архив слишком велик для скачивания примерно 10% случаев
ПризнакКопия создалась, но по ссылке приходит ошибка или файл обрывается.
ПроверкаСмотрим размер архива и ограничения веб-сервера на отдачу больших файлов.
Что делатьРежем архив на части в настройках копирования либо забираем его с сервера напрямую.
Если ничего не помогло
Делаем копию средствами сервера, минуя PHP:
# файлы и база отдельно: так процесс не зависит от лимитов веб-запросаtar -czf /backup/site-$(date +%F).tar.gz -C /home/bitrix/www --exclude='bitrix/backup' .mysqldump --single-transaction --routines --events sitemanager | gzip > /backup/db-$(date +%F).sql.gzТакая копия надёжнее штатной на больших сайтах и не зависит ни от времени выполнения, ни от памяти. Восстанавливается она вручную: распаковка архива, залив дампа и правка параметров подключения.
Проверяем архив до того, как он понадобится:
gzip -t /backup/site-$(date +%F).tar.gz && echo 'архив цел'tar -tzf /backup/site-$(date +%F).tar.gz | wc -l # число файлов внутриzcat /backup/db-$(date +%F).sql.gz | tail -1 # последняя строка дампаОборванный дамп кончается не строкой завершения, а обрывом посередине запроса. Проверка занимает секунды, а обнаруженная при восстановлении битая копия стоит рабочего дня.
Ставим копирование на расписание и чистим старое:
# /etc/cron.d/bitrix-backup: копия ночью, хранение две недели0 3 * * * bitrix /usr/local/bin/site-backup.sh >> /var/log/site-backup.log 2>&10 5 * * * bitrix find /backup -name '*.gz' -mtime +14 -deleteБез второй строки диск заполнится ровно так же, как при штатном копировании: у архивов нет срока жизни, если его не задать.
Исключение каталога резервных копий обязательно. Без него архив кладёт внутрь себя предыдущие архивы и растёт кратно с каждым запуском.
Частые вопросы
Почему копирование зависает всегда на одном проценте?
На этом шаге обрабатывается самый крупный файл или таблица, и шаг не укладывается в лимит времени. Помогает уменьшение размера части архива, а не увеличение лимита на весь сайт.
Резервное копирование в облако не срабатывает.
Сначала проверяют, создаётся ли копия локально: выгрузка в облако - отдельный шаг после упаковки. Если локально копия есть, дело в доступе к хранилищу или в размере файла.
Можно ли складывать копии на сетевой ресурс?
Штатно поддерживаются облако и внешние хранилища по протоколу. Сетевой диск монтируют средствами системы и указывают как путь: для модуля это обычный каталог.
Копия распаковывается с ошибкой размера файлов.
Архив побился при передаче или при записи на переполненный диск. Сверяют контрольную сумму архива на исходном сервере и на целевом до распаковки.
Смежное
-
Резервные копии и перенос сайта - оглавление подтемы
-
BitrixVM и веб-окружение - куда разворачивать копию
-
Сервер и поиск - устройство сервера целиком
-
Обновление платформы и PHP - зачем копия перед обновлением
-
Перенос сайта на другой сервер - что делают с готовой копией
-
Резервное копирование: расписание, состав, хранение и проверка - как это настраивается штатно
-
Закончилось место на диске: разбор причин - разбор нехватки места целиком