mirror of
https://gitverse.ru/kpa39l/vwar.nixg.ru.git
synced 2026-09-29 09:55:06 +00:00
56 lines
2.1 KiB
Bash
Executable File
56 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Скрипт резервного копирования Vaultwarden с отправкой на Яндекс.Диск
|
|
|
|
BACKUP_DIR="/opt/vw/backups"
|
|
YADISK_MOUNT="/mnt/yandex-disk/"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
COMPOSE_DIR="/opt/vw"
|
|
CONTAINER_NAME="vaultwarden"
|
|
ARCHIVE_NAME="vw_backup_${DATE}.tar.gz"
|
|
|
|
mkdir -p "${BACKUP_DIR}"
|
|
|
|
echo "[${DATE}] Начинаем резервное копирование Vaultwarden..."
|
|
|
|
# Проверка монтирования Яндекс.Диска
|
|
if ! mountpoint -q "${YADISK_MOUNT}"; then
|
|
echo " ОШИБКА: Яндекс.Диск не примонтирован в ${YADISK_MOUNT}"
|
|
echo " Попробуйте: sudo mount ${YADISK_MOUNT}"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "${YADISK_MOUNT}/backup/vaultwarden-backups" 2>/dev/null
|
|
cd "${COMPOSE_DIR}" || exit 1
|
|
|
|
echo " -> Останавливаем контейнер для целостности базы данных..."
|
|
docker compose stop "${CONTAINER_NAME}"
|
|
|
|
#echo " -> Создаем архив данных..."
|
|
#FILES_TO_ARCHIVE="data docker-compose.yml"
|
|
#if [ -f ".env" ]; then
|
|
# FILES_TO_ARCHIVE="${FILES_TO_ARCHIVE} .env"
|
|
#fi
|
|
#tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" -C "${COMPOSE_DIR}" ${FILES_TO_ARCHIVE}
|
|
|
|
echo " -> Создаем архив всей директории проекта..."
|
|
tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" -C "${COMPOSE_DIR}" .
|
|
|
|
echo " -> Запускаем контейнер..."
|
|
docker compose start "${CONTAINER_NAME}"
|
|
|
|
if [ -s "${BACKUP_DIR}/${ARCHIVE_NAME}" ]; then
|
|
echo " Архив Vaultwarden: $(du -h "${BACKUP_DIR}/${ARCHIVE_NAME}" | cut -f1)"
|
|
else
|
|
echo " Ошибка создания архива!"
|
|
exit 1
|
|
fi
|
|
|
|
echo " Копирование на Яндекс.Диск..."
|
|
cp "${BACKUP_DIR}/${ARCHIVE_NAME}" "${YADISK_MOUNT}/backup/vaultwarden-backups/"
|
|
|
|
echo " Очистка старых бэкапов..."
|
|
find "${BACKUP_DIR}" -type f -name "vw_backup_*.tar.gz" -mtime +7 -delete 2>/dev/null
|
|
find "${YADISK_MOUNT}/backup/vaultwarden-backups" -type f -name "vw_backup_*.tar.gz" -mtime +30 -delete 2>/dev/null
|
|
|
|
echo "[${DATE}] Резервное копирование Vaultwarden завершено!"
|