# Sauvegarde Proxmox Virtual Environment

Méthode de sauvegarde des configurations et données critiques Proxmox. Avoir des sauvegardes fiables et facilement restaurables est primordial, que ce soit pour se prémunir contre une panne matérielle, une erreur de manipulation ou une attaque.

## Méthode de sauvegarde en local

### Prérequis

- [Un disque dur USB ou un stockage en réseau monté pour les sauvegardes s'il ne l'est pas déjà fait pour vos sauvegardes.](https://pve.proxmox.com/wiki/Storage:_Directory)
- Sauvegarder l'intégralité des machines virtuelles et des conteneurs dans un stockage externe (voir [Backup and Restore
](https://pve.proxmox.com/wiki/Backup_and_Restore)).
- [La sauvegarde : 3-2-1-1-0 et bonnes pratiques](https://www.linuxtricks.fr/wiki/la-sauvegarde-3-2-1-1-0-et-bonnes-pratiques)

#### Point de montage

Pour monter la clé USB qui est formatée en `ext4` automatiquement au démarrage, vous pouvez ajouter la ligne suivante dans le fichier `/etc/fstab` :

```bash
sudo -i
```
```bash
nano /etc/fstab
```
```
/dev/sdb1 /mnt/pve/backup-proxmox ext4 defaults,nofail 0 0
```
Si vous avez un partage de fichiers réseau NFS grâce à un NAS TrueNAS ou Synology, vous pouvez prendre l'exemple ci-dessous en installant au préalable le paquet `nfs-common` :
```
192.168.1.666:/mnt/stockage/backup-proxmox /mnt/pve/backup-proxmox nfs defaults,nofail 0 0
```
```bash
systemctl daemon-reload && mount -a
```

L'option `nofail` permet de ne pas bloquer le démarrage si la clé USB ou le partage NFS n'est pas connectée. Assurez-vous de remplacer `/dev/sdb1` par le bon nom de périphérique de votre clé USB en effectuant la commande `lsblk` et `/mnt/pve/backup-proxmox` par le point de montage de votre choix.

#### Sauvegarde LXC, machine virtuelle

[![](https://wiki.favrep.ch/uploads/images/gallery/2025-05/scaled-1680-/image-1746756317637.png)](https://wiki.favrep.ch/uploads/images/gallery/2025-05/image-1746756317637.png)

#### Sauvegarde configuration
```bash
sudo -i
```
```bash
nano ~/proxmox_configuration_backup.sh
```

Il vous suffit de changer la destination pour les sauvegardes par la vôtre :
```bash
#!/bin/bash

# Description
# Ce script effectue une sauvegarde des dossiers spécifiés.
# Les sauvegardes sont conservées pendant 7 jours
# Le script est exécuté via une tâche cron tous les jours à 2h du matin.

# Dossiers à sauvegarder
BACKUP_DIRS=("/etc/pve" "/etc/passwd" "/etc/network/interfaces" "/var/log")

# Destination des sauvegardes
BACKUP_DEST="/mnt/pve/backup-proxmox/proxmox_configuration_backup"

# Nombre de jours de conservation
RETENTION_DAYS=7

# Exécution de la sauvegarde
for dir in "${BACKUP_DIRS[@]}"; do
    filename="$(basename "$dir")_$(date +%Y-%m-%d).tar.gz"
    tar -czf "$BACKUP_DEST/$filename" "$dir"
    
    # Création du fichier de checksum SHA-256
    sha256sum "$BACKUP_DEST/$filename" > "$BACKUP_DEST/$filename.sha256"
done

# Suppression des sauvegardes obsolètes
find "$BACKUP_DEST" -type f -mtime +$RETENTION_DAYS -delete

# Fin du script
echo "Sauvegarde terminée."

# Pour vérifier le checksum d'un fichier de sauvegarde, utilisez la commande suivante :
# sha256sum -c nom_du_fichier.tar.sha256"
# Remplacez "nom_du_fichier" par le nom de votre fichier de sauvegarde.
```

Rendre exécutable le script :
```bash
chmod +x ~/proxmox_configuration_backup.sh
```

La tâche cron pour effectuer la sauvegarde chaque matin à 2h :
```bash
crontab -e
```
```bash
0 2 * * * ./proxmox_configuration_backup.sh
```
Testez les archives pour vérifier qu'elles ont bien été archivées :
[![](https://wiki.favrep.ch/uploads/images/gallery/2025-05/scaled-1680-/image-1746490245789.png)](https://wiki.favrep.ch/uploads/images/gallery/2025-05/image-1746490245789.png)

## Sauvegarde hebdomadaire vers site distant

Sauvegarder de manière hebdomadaire et incrémentielle les données Proxmox sur un stockage chiffré chez SwissBackup.

### Prérequis
- Rclone d'installé
- [Configurer Rclone avec un service de stockage comme SwissBackup ou autres](https://www.infomaniak.com/fr/support/faq/2285/sauvegarder-linux-avec-rclone-sur-swiss-backup-swift)

La tâche cron :
```bash
crontab -e
```
```bash
0 2 * * * rclone sync /mnt/pve/backup-proxmox crypt_SwissBackup_backup-proxmox:/backup-proxmox --verbose --log-file=/mnt/backupHDD/rclone_SwissBackup_backup-proxmox.txt
```

**Fonctionnement :**
- Exécution tous les jours à 2h du matin
- Synchronisation du répertoire local `/mnt/pve/backup-proxmox` vers le répertoire distant `crypt_SwissBackup_backup-proxmox:/backup-proxmox`
- Utilisation du chiffrement pour le stockage distant sur SwissBackup
- Mode verbeux activé pour plus de détails
- Journalisation des opérations dans le fichier `/mnt/pve/backup-proxmox/rclone_SwissBackup_backup-proxmox.txt`

### Restaurer Proxmox Virtual Environment

Voici les étapes à suivre pour restaurer Proxmox :

1. Installez la dernière version de Proxmox VE 8.x à partir de l'ISO (cela supprimera toutes les données sur l'hôte existant) si nécessaire.
2. Videz le cache de votre navigateur et/ou forcez le rechargement de l'interface Web (CTRL + SHIFT + R, ou pour macOS ⌘ + Alt + R).
3. Reconstruisez votre cluster si nécessaire.
4. Restaurez le fichier `/etc/pve/storage.cfg` pour rendre le stockage externe utilisé pour la sauvegarde disponible.
5. Restaurez les configurations du pare-feu dans `/etc/pve/firewall/` et `/etc/pve/nodes/<node>/host.fw` si nécessaire.
6. Restaurez toutes vos machines virtuelles à partir des sauvegardes (voir la [documentation sur la sauvegarde et la restauration](https://pve.proxmox.com/wiki/Backup_and_Restore)).

Voici les commandes pour restaurer les fichiers de configuration sauvegardés :

1. Placez-vous dans le répertoire contenant vos sauvegardes :

```
cd /mnt/pve/backup-proxmox
ls
```

2. Restaurez les fichiers de configuration :

Restaurer le fichier `/etc/pve/storage.cfg` :

```bash
# Restaurer le fichier /etc/pve/storage.cfg
sudo tar -xzf pve_YYYY-MM-DD.tar.gz -C /etc/pve/ etc/pve/storage.cfg
```

Remplacez `YYYY-MM-DD` par la date de la sauvegarde que vous voulez restaurer.

Restaurer les configurations du pare-feu :

```bash
# Restaurer le dossier /etc/pve/firewall/
sudo tar -xzf pve_YYYY-MM-DD.tar.gz -C /etc/pve/ etc/pve/firewall/

# Restaurer le fichier /etc/pve/nodes/<node>/host.fw
sudo tar -xzf pve_YYYY-MM-DD.tar.gz -C /etc/pve/nodes/<node>/ etc/pve/nodes/<node>/host.fw
```

Remplacez `YYYY-MM-DD` par la date de la sauvegarde et `<node>` par le nom du nœud Proxmox correspondant.