BackTracker - бот для контроля своевременности резервного копирования

20.11.17

База данных - Архивирование (backup)

Когда речь заходит о резервном копировании, паранойи много не бывает. Допустим, Вы настроили бэкап PostgreSQL в сетевое NAS хранилище. Проверили, скрипт работает, все хорошо, ежедневные бэкапы, глубина хранения и всё такое. Но в какой-то момент что-то пошло не так, и важно не упустить этот момент, как можно быстрее всё исправить. Поможет в этом специально обученный Telegram бот.

Думаю, что немало админов приспосабливают технику "второй свежести" под NAS. Есть, наверное, разные рецепты приготовления NAS из того, что было, мне лично нравится рецепт с использованием исключительно свободных инградиентов.

Берем 2-3 офисных ветерана, перетряхиваем, выбираем их них всё самое лучшее, а иногда и просто живое, очищаем от пыли, ставим Linux, настраиваем программный RAID-1, поднимаем SSH и Samba, по вкусу добавляем Webmin и ветеран готов служить еще лет 5, обеспечивая сохранность резервных копий.

Те, кто хоть раз в жизни оказывались в ситуации, когда нужно было восстановиться из резервной копии, а её не было знают, что недостаточно просто настроить путь, куда складывать бэкапы. Как минимум, нужно периодически проверять, что они там появляются в назначенное время. Обычно админ раз в неделю/месяц/год заглядывает на NAS и смотрит на даты резервных копий. Метод не очень надежный, потому, что сильно зависит от человеческого фактора.

А у нас же есть целый сервер, который почти ничем не занят 99% времени, давайте поручим ему самому смотреть туда, где должны появляться резервные копии по расписанию и писать админу телеграммы, о том, что все хорошо, или что-то пошло не так. Админ будет получать эти телеграммы по дороге на работу и знать, что ночной бэкап отработал штатно и все хорошо, или же наоборот, что-то пошло не так, первое, чем ему надлежит заняться придя на работу - это вчерашние резервные копии.

Для этого нам понадобиться:

  1. Консоль Linux
  2. Python - он уже у нас есть, устанавливается по-умолчанию со всеми дистрибутивами Linux
  3. Git - аналогично
  4. Telegram bot - подробнее о них см. тут
  5. Ну и разумеется мессенджер Telegram, которым мы и будем принимать телеграммы от гиппопотама NAS

Открываем консоль, идем в домашнюю папку и клонируем себе скрипт из GitHub

$ cd ~
$ git clone https://github.com/kuleshovdv/backtracker.git
$ cd backtracker

Установим модуль python-telegram-bot, напоминаю, что установщик pip должен работать от root или с правами суперпользователя.

$ sudo pip install python-telegram-bot

Теперь обратимся к Отцу Ботов (@botfather, в Telegram кликнуть telegram.me/botfather) и создадим себе нового бота.

Запишем полученный токен нового бота в конфигурационный файл

$ nano backtracker.conf

и сконфигурируем прочие параметры работы скрипта

[Telegram]
token = 475789166:AAFXRE_e_GR5HUnsfpAgsgsd8fgwegUvMrakY  # токен, полученный от Отца Ботов
failonly = False  #True если отправлять сообщения только когда что-то пошло не так, False - сообщать о каждом сканировании

[Scan]
path = /home/kuld/backups  # сканируемая папка с резервными копиями
hours = 8  # свежесть резервных копий в часах, если нет файлов свежее указанного - это сигнал тревоги

Теперь нужно настроить получателя телеграмм. Запускаем утилиту.

$ ./backtracker.py
В конфигурационном файле не указан ChatID для отправки сообщений о результатах сканирования.
Отправьте своему боту команду /start для автоматического определения ChatID.

Конфигурация успешно сохранена. Запустите утилиту повторно для сканирования папок
$

При первом запуске производится автонастройка получателя. Отправьте своему боту команду /start, все остальное будет сделано автоматически. Скрипт готов к работе, запустите его еще раз.

Остается только добавить его вызов в crontab, что бы демон cron запускал его по расписанию через пару часов после планового резервного копирования.

Кстати, если папок для сканирования и/или получателей несколько, можно сделать разные conf файлы. С каким именно конфигурационным файлом работать скрипту указывается в командной строке.

$ ./backtracker.py backtracker.conf

telegram bot backup admin резервное копирование оповещение контроль linux python

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42515    10    24    

38

BackUPv8 - система резервного копирования баз 1С

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14728    13    6    

18

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5862    n_mezentsev    15    

24

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19810    sapervodichka    36    

142

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4714    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4236    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. viptextil 41 22.11.17 08:32 Сейчас в теме
А отправка логов на почту Вас чем не устраивает? Вот, не поверю, что сисадмины не пользуются почтой...
2. kuld 248 22.11.17 10:39 Сейчас в теме
(1) Это для тех сисадминов, которые хотят в телеграм
Оставьте свое сообщение