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

См. также

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72806    627    45    

85

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

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

1200 руб.

03.09.2014    15712    21    6    

27

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

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

04.12.2023    9451    n_mezentsev    15    

27

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

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

07.10.2022    28667    sapervodichka    37    

147

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

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

1 стартмани

25.08.2022    5737    3    Gnom-Gluck    6    

7

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

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

1 стартмани

02.06.2022    4693    3    Giblarium    12    

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