Files
homelab-docs/scripts/backup-etc-pve.sh
Andrey f319133cee Add notification feature to backup scripts for various services
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.
2026-02-27 20:42:30 +03:00

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