#!/bin/bash # Инкрементальный бэкап с использованием duplicity # Источник: /home/jura1243/work/qwenproj/my-astro-site/ # Назначение: /home/jura1243/work/qwenproj/backup-astro-site/backups/ set -euo pipefail SOURCE_DIR="/home/jura1243/work/qwenproj/my-astro-site/" BACKUP_DEST="file:///home/jura1243/work/qwenproj/backup-astro-site/backups" LOG_FILE="/home/jura1243/work/qwenproj/backup-astro-site/backup.log" RETENTION="3M" # Хранить бэкапы за последние 3 месяца # Опционально: GPG-ключ для шифрования (раскомментируйте и укажите свой ключ) # export PASSPHRASE="your-gpg-passphrase" # GPG_KEY="YOUR_GPG_KEY_ID" echo "$(date '+%Y-%m-%d %H:%M:%S') — Начало бэкапа" >> "$LOG_FILE" # Инкрементальный бэкап duplicity \ --full-if-older-than 1M \ --volsize 250 \ --exclude "**/node_modules" \ --exclude "**/.astro" \ --exclude "**/dist" \ --exclude "**/.git" \ "$SOURCE_DIR" \ "$BACKUP_DEST" \ >> "$LOG_FILE" 2>&1 echo "$(date '+%Y-%m-%d %H:%M:%S') — Бэкап завершён" >> "$LOG_FILE" # Удаление старых бэкапов echo "$(date '+%Y-%m-%d %H:%M:%S') — Удаление бэкапов старше $RETENTION" >> "$LOG_FILE" duplicity remove-older-than \ "$RETENTION" \ --force \ "$BACKUP_DEST" \ >> "$LOG_FILE" 2>&1 echo "$(date '+%Y-%m-%d %H:%M:%S') — Очистка завершена" >> "$LOG_FILE" echo "---" >> "$LOG_FILE"