feat: initial release of pve-rsync-backup script

- Added PVE vzdump log parsing with awk
- Implemented rsync transfer with filelist generation
- Added safety triggers for remote cleanup
- Added dependency and SSH key validation"
This commit is contained in:
2026-04-15 16:21:37 +03:00
commit edc8d166be
5 changed files with 469 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# --- Email Settings ---
SUPPORT_EMAIL='support-mail@your.domain'
# --- System & Logging ---
SYSLOG_TAG="host_backup" # Tag for syslog entries related to the backup process (used in system logs for easier identification)
SERVER_NAME="pve-backup-server" # Unique identifier as hostname for the backup server (used in logs and notifications)
LOG_RETENTION_DAYS=14 # Number of days to keep log files (adjust as needed)
# --- Authentication & Paths ---
BACKUP_SSH_USER='ssh_backup_user_here' # SSH user for remote server authentication (must have appropriate permissions on the remote server)
BACKUP_SSH_USER_KEY="/home/${BACKUP_SSH_USER}/.ssh/id_rsa" # Path to the private SSH key for authentication
RSYNC_PASS_FILE="/backups/rsync_vm.passwd" # Local file containing the password for rsync authentication (if using rsync daemon)
TMP_LOGFILE="./pve-rsync-backup.log" # Temporary log file for rsync output
BACKUP_RSYNC_USER="backup" # Secure username for rsync (defined in the /etc/rsyncd.conf on the remote server)
BACKUP_RSYNC_MODULE="root" # Secure module name for rsync (defined in the /etc/rsyncd.conf on the remote server)
# --- Storage Settings ---
BASE_BACKUP_DIR="/backups" # Base directory for storing backups (ensure this has enough space and proper permissions), may be a mount point (as an external drive)
# Remote PVE paths (can be changed for different systems)
PVE_DUMP_DIR="/storage/dump" # Directory on the Proxmox VE server where VM dumps are stored (must be accessible by the backup user)
PVE_CONF_DIR="/etc/pve/nodes" # Directory on the Proxmox VE server where VM configuration files are stored (must be accessible by the backup user)
# Allowed nodes (optional if you want to limit the list), as a hostname of PVE node
ALLOWED_NODES=("node-a" "node-b") # List of allowed Proxmox VE nodes to backup