Думаю, что немало админов приспосабливают технику "второй свежести" под NAS. Есть, наверное, разные рецепты приготовления NAS из того, что было, мне лично нравится рецепт с использованием исключительно свободных инградиентов.
Берем 2-3 офисных ветерана, перетряхиваем, выбираем их них всё самое лучшее, а иногда и просто живое, очищаем от пыли, ставим Linux, настраиваем программный RAID-1, поднимаем SSH и Samba, по вкусу добавляем Webmin и ветеран готов служить еще лет 5, обеспечивая сохранность резервных копий.
Те, кто хоть раз в жизни оказывались в ситуации, когда нужно было восстановиться из резервной копии, а её не было знают, что недостаточно просто настроить путь, куда складывать бэкапы. Как минимум, нужно периодически проверять, что они там появляются в назначенное время. Обычно админ раз в неделю/месяц/год заглядывает на NAS и смотрит на даты резервных копий. Метод не очень надежный, потому, что сильно зависит от человеческого фактора.
А у нас же есть целый сервер, который почти ничем не занят 99% времени, давайте поручим ему самому смотреть туда, где должны появляться резервные копии по расписанию и писать админу телеграммы, о том, что все хорошо, или что-то пошло не так. Админ будет получать эти телеграммы по дороге на работу и знать, что ночной бэкап отработал штатно и все хорошо, или же наоборот, что-то пошло не так, первое, чем ему надлежит заняться придя на работу - это вчерашние резервные копии.
Для этого нам понадобиться:
- Консоль Linux
- Python - он уже у нас есть, устанавливается по-умолчанию со всеми дистрибутивами Linux
- Git - аналогично
- Telegram bot - подробнее о них см. тут
- Ну и разумеется мессенджер 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