Enhance backup scripts for Nextcloud, Gitea, Paperless, Vaultwarden, Immich, and VPS configurations by adding Telegram notifications upon completion. Include details such as backup size and objects backed up. Update backup documentation to reflect these changes and ensure clarity on backup processes and retention policies.
33 lines
1.3 KiB
Bash
33 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Бэкап /etc/pve и конфигов хоста (interfaces, hosts, resolv.conf).
|
|
# Запускать на хосте Proxmox под root. Cron: 0 3 * * * (после основного backup job в 02:00).
|
|
set -e
|
|
|
|
BACKUP_ROOT="/mnt/backup/proxmox/etc-pve"
|
|
RETENTION_DAYS=30
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "Запускайте под root."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$BACKUP_ROOT"
|
|
DATE=$(date +%Y%m%d-%H%M)
|
|
|
|
tar -czf "$BACKUP_ROOT/etc-pve-$DATE.tar.gz" -C / etc/pve
|
|
tar -czf "$BACKUP_ROOT/etc-host-configs-$DATE.tar.gz" -C / etc/network/interfaces etc/hosts etc/resolv.conf 2>/dev/null || true
|
|
|
|
chmod 600 "$BACKUP_ROOT"/etc-pve-*.tar.gz "$BACKUP_ROOT"/etc-host-configs-*.tar.gz 2>/dev/null || true
|
|
|
|
find "$BACKUP_ROOT" -name 'etc-pve-*.tar.gz' -mtime +$RETENTION_DAYS -delete
|
|
find "$BACKUP_ROOT" -name 'etc-host-configs-*.tar.gz' -mtime +$RETENTION_DAYS -delete
|
|
|
|
NOTIFY_SCRIPT="${NOTIFY_SCRIPT:-/root/scripts/notify-telegram.sh}"
|
|
if [ -x "$NOTIFY_SCRIPT" ]; then
|
|
SIZE=$(du -sh "$BACKUP_ROOT" 2>/dev/null | cut -f1) || true
|
|
BODY="Резервное копирование завершено.
|
|
Объекты: архивы /etc/pve, конфиги сети (interfaces, hosts, resolv.conf).
|
|
Размер копии: ${SIZE:-—}."
|
|
"$NOTIFY_SCRIPT" "⚙️ Конфиги хоста" "$BODY" || true
|
|
fi
|