Скрипт резервного копіювання Restic для Vaultwarden

Примітка: Пов’язані публікації:

Налаштування скрипта резервного копіювання

Спочатку згенеруйте пароль шифрування за допомогою

generate_restic_password.sh
pwgen 30 > .restic_password

Обов’язково зробіть резервну копію цього пароля окремо, інакше УСІ ВАШІ ДАНІ БУДУТЬ ВТРАЧЕНІ!

Тепер створіть backup.sh у тій же директорії, що й docker-compose.yml:

vaultwarden_backup.sh
#!/bin/bash
export NAME=$(basename $(pwd))
export RESTIC_REPOSITORY=rest:http://restic:abc123@10.1.2.3:16383/$NAME
export RESTIC_PASSWORD_FILE=.restic_password

if [ ! -f "${RESTIC_PASSWORD_FILE}" ]; then
   echo "Будь ласка, створіть .restic_password з паролем шифрування резервної копії ТА ЗБЕРЕЖІТЬ ЦЕЙ ПАРОЛЬ ОКРЕМО!!!"
   exit 1
fi
echo "Ініціалізація репозиторію, будь ласка, ігноруйте будь-які помилки 'already exists'"
if [ ! -f ".restic_inited" ]; then
    # Запуск команди restic init
    restic init

    if [ $? -eq 0 ]; then # якщо init успішний
        # Створення файлу ініціалізації
        touch ".restic_inited"
        echo "Restic ініціалізовано"
    fi
fi

# Резервне копіювання
source .env
docker-compose exec -T mariadb mysqldump -uroot -p${MARIADB_ROOT_PASSWORD} --all-databases | restic --verbose backup --stdin --stdin-filename="mariadb.sql"
# Резервне копіювання файлів
restic --verbose backup vw_data backup.sh --exclude vw_data/icon_cache

Автоматичний запуск скрипта резервного копіювання

Дивіться Як створити таймер та сервіс резервного копіювання Systemd за 10 секунд

TL;DR: У директорії, де знаходиться backup.sh, виконайте

create_backup_service.sh
wget -qO- https://techoverflow.net/scripts/create-backup-service.sh | sudo bash /dev/stdin

Дивіться схожі статті за категоріями: Restic Backup