Отдел разработки нашей компании долгое время существовал из двух сотрудников — руководитель отдела и разработчик с дополнительными функциями системного администратора. Я (как руководитель) занимаюсь не только околоорганизационными штуками, но и пишу много кода, разруливаю ряд серверных вопросов (прошлый опыт работы админом весьма пригодился) и выполняю ряд других мелких задач. Работы много, и если не пытаться ее хоть как-то автоматизировать, то легко закопаться с головой.

Так вот, встала как-то передо мной задача навести порядок в механизме резервного копирования. Скажу больше, задачу поставил я сам себе, т.к. задолбался тратить кучу времени на проверки наличия бекапов и обновление соответствующих скриптов. Мы не используем каких-то специализированных дорогущих средств для резервного копирования, а обходимся самостоятельным написанием cmd/bash/sql сценариев. С одной стороны, это быстро и бесплатно, с другой — проблемы с наглядностью и разбором логов.

Бывало так, что задания по каким-то причинам не срабатывали, и я мог это заметить спустя пару дней. Понятное дело, что нужно следить за всем постоянно, но объем задач вносит свои коррективы. Вот так одним прекрасным утром одна из баз улетела в тар-тар, а последняя копия была создана аж 2 дня назад. Для этой базы это не сильно критично, т.к. все актуальные данные сразу же уходят на удаленный сервер и могут быть легко восстановлены. Потеря по факту затронула только пользовательские черновики, но это можно пережить.

Так вот, с того момента я честно поговорил сам с собой и решил, что если я сам не решу эту проблему, то она не решится никогда. Мне не очень нравится заниматься администрированием, поэтому такие задачи стараюсь отодвигать, а на первый план ставить вопросы, связанные с разработкой.

Подумав, как эффективно решить данную проблему с минимумом затрат, я решил написать простенькую конфигурацию на 1С:Предприятие 8.3 (основная технология разработки в нашей компании), которая сделает проверку и выполнение резервного копирования информационных баз более приятным процессом, не требующим постоянного чтения кучи логов и нудной правки батников. Можно было и дальше обходиться сценариями, наворачивая функционал, но я решил сразу избавиться от проблем поддержки. Сценарии для командного интерпретатора пишут не все, чего не скажешь про 1С. Будет удобно, если коллеги смогут при необходимости что-нибудь дописать. Вот и родилась идея проекта с кодовым названием “The Keeper”.

На данном этапе я решил проблему создания бэкапов, а также предварительного завершения работы пользователей. Все это вполне себе успешно работает, и следующим шагом хочу добавить функционал для тестирования созданных копий, возможность автоматической загрузки “свежей” копии базы в окружение разработчика, рассылку почтовых уведомлений и несколько других личных хотелок. Как только реализую эти задумки — выложу конфигурацию в паблик.

Друзья, а как вы делаете бэкапы информационных баз 1С? Используете какие-нибудь специализированные программы или обходитесь одними батниками?