- Published on
Backup automatici di Proxmox con script personalizzati: la mia strategia
- Authors

- Name
- Alessandro Iannacone
Fare backup è fondamentale, ma automatizzarli è ciò che fa davvero la differenza. In questo articolo ti mostro come ho configurato un sistema di backup automatico per le mie VM e container LXC su Proxmox, con rotazione, snapshot, e notifiche email.
Tutto è gestito da uno script bash che gira via cron, senza dipendenze esterne.
🎯 Obiettivo
- Automatizzare i backup giornalieri
- Includere sia VM che LXC
- Mantenere una rotazione (es. 7 giorni)
- Ricevere notifiche via email
- Tutto su storage secondario (es. disco ZFS, NFS o USB)
🏗️ Ambiente
- Hypervisor: Proxmox VE 8.x
- Backup storage:
/mnt/backup(montato via NFS o disco locale) - Output log: email inviata a
[email protected]
🧰 Lo script di backup
Salvo lo script in /root/scripts/backup-proxmox.sh:
#!/bin/bash
# backup-proxmox.sh
BACKUP_DIR="/mnt/backup/proxmox"
LOGFILE="/var/log/backup-proxmox.log"
RETENTION_DAYS=7
DATE=$(date '+%Y-%m-%d_%H-%M-%S')
echo "🔄 Backup Proxmox avviato - $DATE" > "$LOGFILE"
# Esegui il backup per ogni VM/LXC attiva
for VMID in $(qm list | awk 'NR>1 {print $1}'); do
echo "➡️ Backup VM $VMID" >> "$LOGFILE"
vzdump $VMID --mode snapshot --compress zstd --storage local --dumpdir "$BACKUP_DIR" >> "$LOGFILE" 2>&1
done
for CTID in $(pct list | awk 'NR>1 {print $1}'); do
echo "➡️ Backup LXC $CTID" >> "$LOGFILE"
vzdump $CTID --mode snapshot --compress zstd --storage local --dumpdir "$BACKUP_DIR" >> "$LOGFILE" 2>&1
done
# Pulizia vecchi backup
echo "🧹 Pulizia backup più vecchi di $RETENTION_DAYS giorni" >> "$LOGFILE"
find "$BACKUP_DIR" -type f -name "*.zst" -mtime +$RETENTION_DAYS -delete >> "$LOGFILE" 2>&1
echo "✅ Backup completato - $(date '+%Y-%m-%d_%H-%M-%S')" >> "$LOGFILE"
# Invio log via email
mail -s "Backup Proxmox - $DATE" [email protected] < "$LOGFILE"
🕓 Automazione con cron
Edito il cron di root:
crontab -e
E aggiungo:
0 3 * * * /root/scripts/backup-proxmox.sh
Questo esegue il backup ogni notte alle 03:00.
🧪 Testing
Test manuale:
bash /root/scripts/backup-proxmox.sh
Verifico che:
- I file
.zstsiano nella cartella backup - L’email con il log venga ricevuta correttamente
- Il sistema non sia sovraccarico (uso snapshot per velocità)
📦 Dove salvo i backup?
Io utilizzo:
- NFS montato da NAS →
/mnt/backup - Oppure disco USB dedicato montato con
/etc/fstab - Oppure ZFS dataset su disco secondario
Tutti sono validi, basta che il path abbia spazio e accesso in scrittura.
🔐 Sicurezza
- Lo script è leggibile solo da root
- Le email sono inviate tramite SMTP relay sicuro (msmtp)
- I backup possono essere criptati separatamente se servono
✅ Conclusione
Con questo script ho una soluzione leggera e robusta per i backup di Proxmox. Nessun software esterno, solo vzdump, cron e un po’ di bash.
Se ti serve una base per un sistema più avanzato (come upload automatico in cloud o backup incrementali), questo approccio è un ottimo punto di partenza.
💬 Ti serve lo script aggiornato o con crittografia?
Scrivimi pure via email e ti mando la versione completa adattata alla tua infrastruttura.