logo

Введение Link to heading

У меня уже есть серия постов про UptimeKuma: Uptime Kuma – мониторинг ваших сервисов, Uptime Kuma – добавляем мониторинг статуса systemd сервисов

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

Общий план бэкапа Link to heading

В теории процесс резервного копирования довольно прост:

— Остановить сервис UptimeKuma

— Скопировать папку с настройками

— Заархивировать эти данные с паролем

— Загрузить архив в облако с помощью rclone

— Запустить UptimeKuma обратно

Подготовка скрипта для бекапа Link to heading

Как я говорил выше, мы будем использовать похожий скрипт из статьи Делаем резервную копию базы Vaultwarden в DietPi, так что нового ничего нового особо нет

— создаем файл nano /root/scripts/uptimekumabackup.sh в вашем любимом редакторе и копируем в него содержание моего файла uptimekumabackup.sh

— создаем файл с настройками работы скрипта nano /root/scripts/backups.env

P.S. Если он у вас уже был, мы просто добавим в него новые переменные: OUTPUT_UPTIMEKUMA и RCLONE_FOLDER_UPTIMEKUMA

SECRET_KEY=passwordqwerty123

OUTPUT_UPTIMEKUMA=vaultwarden_backup.zip

RCLONE_SERVICES=yandex

RCLONE_FOLDER_UPTIMEKUMA=backupdromserver/dbuptumekuma

Пояснение к файлу настроек:

SECRET_KEY = пароль для вашего архива с бекапами

OUTPUT_UPTIMEKUMA = имя архива с вашим бекапом

RCLONE_SERVICES = название облачного сервиса для бэкапа в rclone

RCLONE_FOLDER_UPTIMEKUMA = Название папки в облачном сервисе

— сохраняем файл настроек

Проверка работы скрипта Link to heading

— переходим в папку со скриптом cd /root/scripts/

— запускаем скрипт bash ./uptimekumabackup.sh

Отправка уведомлений в Telegram (опционально) Link to heading

Скрипт может отправлять уведомления в Telegram. Для этого:

Создаём бота Link to heading

Открываем @BotFather, создаём бота и сохраняем API Token.

Узнаём chat_id Link to heading

— Напишите боту /start

— Перейдите по ссылке в браузере:

https://api.telegram.org/bot<API_TOKEN>/getUpdates

(замените <API_TOKEN> на свой токен бота, сохраненный ранее)

В ответе будет JSON, где ищем:

"chat": {
  "id": 987654321,
  ...
}

Это и есть TELEGRAM_CHAT_ID.

— Добавляем переменные TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID в /root/scripts/backups.env или используем те что у вас уже были.


TELEGRAM_BOT_TOKEN=987654321:QWERTYUIO-ASDFGHJKlzx

TELEGRAM_CHAT_ID=987654321

— сохраняем файл настроек

Добавляем в cron ваш скрипт Link to heading

— делаем скрипт исполняемым chmod +x /root/scripts/uptimekumabackup.sh

— выполняем команду crontab -e

— добавляем строку 0 8 * * * /root/scripts/uptimekumabackup.sh

— сохраняем изменения

Данный скрипт будет выполняется каждый день в 8 утра.