Введение 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 утра.