Skip to content

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.