Ситуация Настроено регулярное резервное копирование с выгрузкой бэкапа в облако Битрикс. По какой-либо причине создание бэкапа не удается полностью завершить (в моем случае не удалось залить в облако). В журнале резервного копирования это может выглядеть так:
Если вовремя не обнаружить проблему, то ее обнаружат посетители, т.к. рано или поздно работа сайта будет нарушена из-за нехватки свободного места на диске. Хуже, если в рамках данного дискового пространства работают также и другие сайты. Кроме того, вы рискуете остаться без свежей версии бэкапа.
Правильным решением, в случае неудачного создания бэкапа, будет немедленное сообщение об этом случае администратору. Как реализовать? В голову сразу приходит использовать обработчик события создания бэкапа. К сожалению, поиски по документации, форумам и блогам результата не дали. Ну ок, тогда лезем в исходники...
//добавляем обработчик на оба события
AddEventHandler("main", "OnAutoBackupError", "OnAutoBackupError");
AddEventHandler("main", "OnAutoBackupUnknownError", "OnAutoBackupError");
//сам обработчик
function OnAutoBackupError($error){
//какую информацию передадим в уведомление
$arEventFields = array(
"DATE_CREATE"=> date("d.m.Y H:i:s"),
"ERROR"=> $error['ERROR'],
"ERROR_CODE"=> $error['ERROR_CODE'],
"ITEM_ID"=> $error['ITEM_ID'],
);
//создаем почтовое событие
CEvent::Send("BACKUP_UNKNOWN_ERROR", SITE_ID, $arEventFields);
}
Добавляем тип почтового события:
Добавляем для него почтовый шаблон:
А вот и пример результата наших стараний:
Теперь при каждом неудачном резервном копировании вы получите уведомление на указанный почтовый адрес. Аналогичным образом можно настроить уведомления при каждом удачном резервировании - все зависит от степени вашей параноидальности За это, кстати, отвечает событие OnAutoBackupSuccess.
Бесспорно это здорово, что вы сами разобрались и нашли событие, а также реализовали уведомления. Однако, если система бекапов столь ненадежна, то может есть смысл перейти на другие технологии, например создание снапшотов итп.?
Kryachek Mikhail, спасибо за совет. Вообще, бэкап у нас выполняется на трех уровнях: bash-скрипт со сбросом архива на удаленный сервер, снапшот на уровне Hyper-V, ну и, если есть бесплатный бонус в качестве облачного хранилища от Битрикс, то почему бы его не использовать?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».