Testing Backups
Tests réguliers pour validation infrastructure backup.
Tests Mensuels Obligatoires
Test 1 : Restore LXC Partiel
Objectif : Valider restore fichier unique depuis PBS
Procédure :
# 1. Mount backup LXC 100
pct exec 102 -- proxmox-backup-client mount \
ct/100/<latest-snapshot> /mnt/restore/
# 2. Extraire fichier test
cp /mnt/restore/etc/hostname /tmp/test-restore-hostname
# 3. Vérifier contenu
cat /tmp/test-restore-hostname
# 4. Unmount
pct exec 102 -- proxmox-backup-client umount /mnt/restore/
# 5. Cleanup
rm /tmp/test-restore-hostname
Résultat attendu : Fichier extrait avec contenu correct
Test 2 : Verify Backup Integrity
Objectif : Valider intégrité chunks PBS
# Verify dernier backup LXC 100
pct exec 102 -- proxmox-backup-manager verify \
--store datastore \
--backup-type ct \
--backup-id 100
# Verify dernier backup LXC 101
pct exec 102 -- proxmox-backup-manager verify \
--store datastore \
--backup-type ct \
--backup-id 101
Résultat attendu : No errors, tous chunks OK
Test 3 : Google Drive Sync
Objectif : Valider upload offsite
# Vérifier derniers uploads
pct exec 102 -- rclone ls gdrive:backup/homeserver/pbs/ct/100/ | tail -5
pct exec 102 -- rclone ls gdrive:backup/homeserver/pbs/ct/101/ | tail -5
pct exec 102 -- rclone ls gdrive:backup/homeserver/configs/ | tail -3
pct exec 102 -- rclone ls gdrive:backup/homeserver/docker-configs/ | tail -3
# Vérifier tailles cohérentes
pct exec 102 -- rclone size gdrive:backup/homeserver/
Résultat attendu : Fichiers datés <24h, tailles non-nulles
Test 4 : Cron Execution
Objectif : Valider scripts s'exécutent
# Vérifier dernières exécutions logs
tail -50 /var/log/backup-proxmox-host.log | grep "SUCCESS"
pct exec 102 -- tail -50 /var/log/backup-docker-configs.log | grep "SUCCESS"
pct exec 102 -- tail -50 /var/log/backup-documentation.log | grep "SUCCESS"
pct exec 102 -- tail -50 /var/log/pbs-sync-gdrive.log | grep "SUCCESS"
Résultat attendu : SUCCESS dans dernières 24h pour chaque script
Tests Trimestriels
Test Full Restore LXC
Objectif : Valider restore complet container
Procédure :
# 1. Create test LXC ID 999
pct restore 999 pbs-datastore:backup/ct/100/<snapshot> \
--storage local-lvm \
--unprivileged 1
# 2. Start container
pct start 999
# 3. Vérifier services
pct exec 999 -- systemctl status docker
pct exec 999 -- docker ps
# 4. Vérifier montages
pct exec 999 -- df -h
# 5. Cleanup
pct stop 999
pct destroy 999
Résultat attendu : LXC démarre, services OK, montages corrects
Test Restore Configs Host
Objectif : Valider extraction backup host
# Download + extract dans /tmp (sans écraser production)
pct exec 102 -- rclone copy \
gdrive:backup/homeserver/configs/proxmox-host-config-<latest>.tar.gz \
/tmp/
tar -tzf /tmp/proxmox-host-config-*.tar.gz | head -20 # Lister contenu
tar -xzf /tmp/proxmox-host-config-*.tar.gz -C /tmp/test-restore/
# Vérifier fichiers clés présents
ls -la /tmp/test-restore/etc/pve/
ls -la /tmp/test-restore/etc/network/
ls -la /tmp/test-restore/usr/local/bin/
# Cleanup
rm -rf /tmp/test-restore/
Résultat attendu : Archive extractible, fichiers critiques présents
Checklist Testing
| Test | Fréquence | Dernière Exécution | Status |
|---|---|---|---|
| Restore partiel | Mensuel | YYYY-MM-DD | ✅ |
| Verify integrity | Mensuel | YYYY-MM-DD | ✅ |
| Google Drive sync | Mensuel | YYYY-MM-DD | ✅ |
| Cron execution | Mensuel | YYYY-MM-DD | ✅ |
| Full restore LXC | Trimestriel | YYYY-QX | ⏳ |
| Restore configs | Trimestriel | YYYY-QX | ⏳ |
Documentation
Après chaque test, noter résultats dans tableau ci-dessus avec date et status.