Documentation
Sauvegarder un serveur Linux
Sauvegardez un serveur Linux Debian vers votre datastore myPBS sans Proxmox VE : installation en une ligne ou méthode manuelle, chiffrement, restauration et suivi.
Un serveur Linux se sauvegarde vers votre datastore avec proxmox-backup-client, le client officiel de Proxmox Backup Server. Aucun Proxmox VE n’est nécessaire : le serveur envoie ses dossiers, ou tout le système, directement à myPBS. Vous avez besoin des informations de connexion de votre espace client : serveur, port, datastore, utilisateur (token) et secret du jeton.
Utilisez toujours le nom du serveur indiqué dans l’espace client (par exemple pbs-01.exemple.fr), jamais une adresse IP : le certificat du serveur est émis pour ce nom.
Prérequis
- un serveur Debian 12 (bookworm) ou Debian 13 (trixie), en amd64 ; les autres systèmes ne sont pas pris en charge par le script d’installation ;
- en arm64, le dépôt officiel de Proxmox ne propose pas encore le client : installez
proxmox-backup-clientvous-même, puis lancez le script, qui l’utilisera tel quel ; - un accès root (ou
sudo) ; - un accès réseau en sortie vers le serveur myPBS, en TCP sur le port
8007; curlouwget: la ligne d’installation utilisecurl, absent d’une Debian installée avec les seuls utilitaires standard (qui fournissentwget). Voir la note sous la ligne d’installation.
Les dossiers à sauvegarder doivent être sur des disques locaux (ext4, xfs, btrfs, etc.). Les partages réseau (NFS, CIFS, SSHFS) sont refusés.
Installation en une ligne
L’espace client affiche la ligne d’installation prête à copier, avec vos informations. Elle ressemble à ceci :
curl -fsSL https://mypbs.cloud/install/linux-server.sh -o mypbs-install.sh && sudo bash mypbs-install.sh --server pbs-01.exemple.fr --port 8007 --datastore acme --user 'acme@pbs!pve' --per-day 2
En root, retirez sudo. Sans curl : apt-get install curl, ou téléchargez avec wget -qO mypbs-install.sh https://mypbs.cloud/install/linux-server.sh, puis lancez la suite de la ligne (bash mypbs-install.sh --server ...).
Le secret du jeton n’est jamais dans cette ligne : le script vous le demande à l’écran, sans l’afficher. Les guillemets simples autour de l’utilisateur sont nécessaires, car le caractère ! a un sens particulier pour le shell.
Le script est téléchargé dans un fichier avant d’être exécuté : vous pouvez le lire avant de le lancer, par exemple avec less mypbs-install.sh. Il refuse d’être lancé par un tube (curl ... | bash), car il se copie comme lanceur des sauvegardes.
Ce que fait le script
- Il vérifie le système (Debian 12 ou 13, amd64 ; arm64 seulement si le client est déjà installé) et que vous êtes root.
- Il demande ce qui manque : les dossiers à sauvegarder (ou tout le serveur), l’identifiant de ce serveur dans myPBS (par défaut son nom court), le chiffrement, puis le secret du jeton.
- Il installe le paquet
proxmox-backup-clientdepuis le dépôt officiel de Proxmox, s’il n’est pas déjà présent (c’est le cas sur un nœud Proxmox VE). Sur un hôte Proxmox VE, il n’installe jamais de paquet : si le client manque, il s’arrête et vous demande de l’installer vous-même. - Il range le secret dans
/etc/mypbs/secret(lisible par root seulement) et teste la connexion avant d’aller plus loin. - Si vous choisissez le chiffrement, il crée la clé et vous demande de la copier ailleurs (voir Chiffrement).
- Il écrit la configuration
/etc/mypbs/mypbs.conf, installe le lanceur/usr/local/sbin/mypbs-backupet programme les sauvegardes avec un timer systemd, ou avec cron si systemd n’est pas actif. - Il propose de lancer la première sauvegarde tout de suite.
Il ne modifie rien d’autre : le paquet et son dépôt, /etc/mypbs/, les deux unités systemd (mypbs-backup.service et mypbs-backup.timer) ou /etc/cron.d/mypbs, et le lanceur. systemd y ajoute de lui-même /var/lib/systemd/timers/stamp-mypbs-backup.timer, la date du dernier passage du timer, que la désinstallation efface. Relancé, il ne duplique rien.
Les options
| Option | Rôle |
|---|---|
--server, --port, --datastore, --user |
informations de connexion de l’espace client |
--per-day N |
nombre de sauvegardes par jour, de 1 à 4 (1 par défaut) |
--folders /etc,/home |
dossiers à sauvegarder, chemins absolus séparés par des virgules |
--whole-host |
tout le serveur, voir Sauvegarder tout le serveur |
--id NOM |
identifiant de ce serveur dans myPBS (nom court du serveur par défaut) : lettres sans accent, chiffres, ., _ et -, sans espace |
--encryption yes ou no |
chiffrer ou non les sauvegardes ; obligatoire avec --non-interactive ou sans terminal |
--secret-file FICHIER |
lire le secret dans un fichier au lieu de le saisir |
--fingerprint SHA256 |
empreinte du certificat du serveur ; la ligne de l’espace client l’ajoute d’elle-même quand le certificat du serveur n’est pas un certificat public |
--non-interactive |
ne poser aucune question : toutes les informations doivent être données en options |
Pour une installation automatisée, mettez le secret dans un fichier lisible par root seul et donnez toutes les options :
sudo bash mypbs-install.sh --non-interactive \
--server pbs-01.exemple.fr --port 8007 --datastore acme --user 'acme@pbs!pve' \
--folders /etc,/home --encryption yes --per-day 2 \
--secret-file /root/secret-mypbs
Les créneaux de sauvegarde
Les sauvegardes sont espacées de 24 / par-jour heures : toutes les 24 h pour 1 par jour, 12 h pour 2, 8 h pour 3, 6 h pour 4. L’heure exacte est tirée au hasard à l’installation et reste fixe pour ce serveur (entre 0 h et 4 h pour la première, minute comprise entre 0 et 59), pour que vos serveurs n’arrivent pas tous en même temps. Par exemple, avec 2 par jour, un serveur sauvegarde à 01:07 et 13:07 (heure du serveur).
Le lanceur ajoute une protection locale : un passage planifié est sauté si la dernière sauvegarde réussie date de moins de la moitié de l’intervalle (6 h pour 2 par jour). Cela évite qu’un rattrapage après un redémarrage double une sauvegarde qui vient d’avoir lieu. Le nombre de sauvegardes autorisées par jour dépend de votre offre : voir Limites et quotas.
Gérer une installation
Sur un serveur installé, la commande suivante ouvre un menu :
sudo mypbs-backup
Sauvegarde myPBS : acme@pbs!pve@pbs-01.exemple.fr:8007:acme
1) Changer le secret du jeton
2) Changer ce qui est sauvegardé
3) Changer le rythme (2 par jour)
4) Sauvegarder maintenant
5) Désinstaller
6) Quitter
Les mêmes actions existent en options, pour les scripts :
| Option | Effet |
|---|---|
--change-secret |
remplace le secret du jeton (avec --secret-file FICHIER, ou saisi à l’écran) |
--per-day N |
change le rythme et réécrit la planification, en gardant le même créneau |
--folders /a,/b ou --whole-host |
change ce qui est sauvegardé |
--now |
lance une sauvegarde immédiate |
--uninstall |
retire myPBS du serveur |
Quelques règles à connaître :
- Changer le secret teste la connexion avec le nouveau secret. Si elle échoue, l’ancien secret est conservé. Pensez-y après avoir régénéré le jeton.
- Sauvegarder maintenant vous prévient, et demande confirmation, si la dernière sauvegarde date de moins de 15 minutes, ou si le rythme du jour est déjà atteint (une sauvegarde de plus dépasserait la limite de votre offre, voir Limites et quotas). Sans terminal, elle ne se lance pas dans ces cas.
- Le serveur, le port, le datastore, l’utilisateur, l’empreinte, l’identifiant et le chiffrement ne se modifient pas sur une installation existante : le script refuse une valeur différente et ne change rien. Pour les modifier, désinstallez puis réinstallez.
- Relancer l’installation telle quelle ne change rien et ne répare pas un serveur qui est passé de systemd à cron (ou l’inverse). Dans ce cas, changez le rythme vers une autre valeur (un rythme identique à l’actuel ne réécrit rien), ou désinstallez et réinstallez : la planification est alors réécrite.
Sauvegarder tout le serveur
Avec --whole-host (ou en répondant tout à la question sur les dossiers), une seule archive root.pxar contient la racine / et tous les disques locaux montés (/boot, /home, etc.). Sont exclus : /tmp/*, /var/tmp/*, les paquets .deb téléchargés par apt, /swapfile et /lost+found. Les partages réseau et les systèmes de fichiers virtuels (/proc, /sys, etc.) ne sont jamais inclus.
Avec une liste de dossiers, chacun devient une archive nommée d’après son chemin : /etc donne etc.pxar, /var/lib/mysql donne var_lib_mysql.pxar. Toutes les archives partent dans une seule sauvegarde.
Dans tous les cas, la clé de chiffrement et le secret du jeton (/etc/mypbs/secret) ne sont jamais envoyés, même si un dossier choisi les contient (/, /etc, /root…) : gardez une copie de la clé ailleurs (voir Chiffrement).
Commande préalable à la sauvegarde
Pour préparer une sauvegarde (vider une base de données, geler une application), créez un exécutable /etc/mypbs/pre-backup. Il est lancé avant chaque sauvegarde, planifiée ou non ; s’il échoue, la sauvegarde est annulée.
sudo tee /etc/mypbs/pre-backup >/dev/null <<'EOF'
#!/bin/sh
mysqldump --all-databases > /var/backups/mysql.sql
EOF
sudo chmod 700 /etc/mypbs/pre-backup
Désinstaller
sudo mypbs-backup --uninstall
Cette commande retire la planification (avec la date du dernier passage du timer), le lanceur et /etc/mypbs/, y compris votre commande préalable /etc/mypbs/pre-backup : copiez-la d’abord ailleurs si vous voulez la garder. La clé de chiffrement est conservée dans /root/.config/proxmox-backup/encryption-key.json : sans elle, vos sauvegardes chiffrées sont illisibles. Le paquet proxmox-backup-client reste installé, et les sauvegardes déjà envoyées restent sur myPBS (leur rétention continue de s’appliquer, voir Rétention et nettoyage).
Méthode manuelle
Vous pouvez tout faire sans le script. Les blocs suivants sont complets ; exécutez-les en root. Ils reproduisent ce que fait le script.
1. Installer le client
Sur Debian 12 (bookworm) :
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
-o /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" \
> /etc/apt/sources.list.d/pbs-client.list
apt-get update
apt-get install -y proxmox-backup-client
Sur Debian 13 (trixie), le dépôt s’écrit dans un fichier pbs-client.sources :
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg \
-o /usr/share/keyrings/proxmox-archive-keyring.gpg
cat > /etc/apt/sources.list.d/pbs-client.sources <<'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pbs-client
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
apt-get update
apt-get install -y proxmox-backup-client
Ce dépôt ne contient que des paquets amd64 : sur un serveur arm64, apt-get install ne trouve pas le paquet.
2. Ranger le secret
Le secret ne doit apparaître ni dans une commande ni dans un journal : placez-le dans un fichier lisible par root seul. Créez le dossier et le fichier vide avec les bons droits, puis collez le secret dans l’éditeur :
install -d -m 700 /etc/mypbs
install -m 600 /dev/null /etc/mypbs/secret
nano /etc/mypbs/secret
Le contenu du fichier est le secret seul, sur une ligne (SECRET-DU-JETON) ; le retour à la ligne final qu’ajoute un éditeur ne gêne pas. Le fichier n’est jamais lisible par un autre utilisateur, et le secret ne passe pas par l’historique du shell.
3. Tester la connexion
export PBS_REPOSITORY='acme@pbs!pve@pbs-01.exemple.fr:8007:acme'
export PBS_PASSWORD_FILE=/etc/mypbs/secret
proxmox-backup-client list
Le dépôt s’écrit utilisateur@serveur:port:datastore. Une liste vide, sans erreur, est normale avant la première sauvegarde. Si une erreur d’empreinte apparaît, voir L’empreinte du certificat et ajoutez export PBS_FINGERPRINT='AB:CD:EF:...'.
4. Lancer une sauvegarde
Pour un ou plusieurs dossiers, une archive .pxar par dossier :
proxmox-backup-client backup etc.pxar:/etc home.pxar:/home \
--backup-type host --backup-id "$(hostname -s)" --crypt-mode none
Pour tout le serveur, avec ses disques locaux et les mêmes exclusions que le script, sauf les paquets apt téléchargés :
proxmox-backup-client backup root.pxar:/ \
--backup-type host --backup-id "$(hostname -s)" --crypt-mode none \
--include-dev /boot --include-dev /home \
--exclude '/tmp/*' --exclude '/var/tmp/*' \
--exclude '/swapfile' --exclude '/lost+found'
Ajoutez une option --include-dev par disque local monté (vérifiez avec findmnt) : sans elle, le client ne franchit pas les points de montage. Avec le chiffrement, remplacez --crypt-mode none par --keyfile /root/.config/proxmox-backup/encryption-key.json (voir Chiffrement). Sans l’un des deux, le client cherche la clé par défaut de l’utilisateur et peut sauvegarder en clair par surprise : indiquez toujours l’un des deux.
5. Planifier
Les unités ci-dessous appellent le lanceur /usr/local/sbin/mypbs-backup. Écrivez-le d’abord : c’est un petit script qui exécute votre commande de sauvegarde (il reçoit les arguments --run --scheduled, que vous pouvez ignorer).
cat > /usr/local/sbin/mypbs-backup <<'EOF'
#!/bin/sh
export PBS_REPOSITORY='acme@pbs!pve@pbs-01.exemple.fr:8007:acme'
export PBS_PASSWORD_FILE=/etc/mypbs/secret
exec proxmox-backup-client backup etc.pxar:/etc home.pxar:/home \
--backup-type host --backup-id "$(hostname -s)" --crypt-mode none
EOF
chmod 755 /usr/local/sbin/mypbs-backup
Avec systemd, créez /etc/systemd/system/mypbs-backup.service :
[Unit]
Description=Sauvegarde myPBS
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
Nice=10
TimeoutStartSec=6h
ExecStart=/usr/local/sbin/mypbs-backup --run --scheduled
TimeoutStartSec=6h arrête une sauvegarde restée bloquée plus de six heures, pour que les passages suivants puissent avoir lieu.
et /etc/systemd/system/mypbs-backup.timer. Cet exemple sauvegarde deux fois par jour, à 01:07 et 13:07 ; choisissez vos propres heures et minute, espacées de 24 / nombre de sauvegardes par jour heures :
[Unit]
Description=Sauvegarde myPBS (planification)
[Timer]
OnCalendar=*-*-* 01,13:07:00
Persistent=true
[Install]
WantedBy=timers.target
Activez le timer :
systemctl daemon-reload
systemctl enable --now mypbs-backup.timer
Sans systemd, la ligne équivalente va dans /etc/cron.d/mypbs :
7 1,13 * * * root /usr/local/sbin/mypbs-backup --run --scheduled
N’utilisez qu’une seule des deux planifications. Le script d’installation, lancé ensuite, remplacerait ce lanceur par le sien : désinstallez la configuration manuelle d’abord si vous voulez passer au script.
Chiffrement
Le chiffrement côté client protège vos données avant leur envoi : la clé reste sur votre serveur et nous ne la détenons jamais. Avec l’installation en une ligne, répondez oui à la question (ou passez --encryption yes) : le script crée la clé /root/.config/proxmox-backup/encryption-key.json (sans mot de passe, pour que les sauvegardes planifiées fonctionnent) puis vous demande de confirmer que vous l’avez copiée ailleurs. Une clé déjà présente à cet endroit est réutilisée, jamais écrasée, à condition qu’elle soit sans phrase secrète : si elle est protégée par une phrase secrète, le script s’arrête avant de rien configurer. Relancez alors avec --encryption no, ou déplacez cette clé (gardez-en une copie si des sauvegardes l’utilisent) pour qu’une nouvelle clé soit créée.
Sans cette clé, vos sauvegardes sont illisibles, et nous ne pouvons pas la récupérer. Copiez-la hors du serveur, dans un gestionnaire de mots de passe ou un coffre. Les principes de conservation sont détaillés dans Chiffrement côté client.
À la main, créez la clé et imprimez-en une version papier :
proxmox-backup-client key create --kdf none /root/.config/proxmox-backup/encryption-key.json
proxmox-backup-client key paperkey /root/.config/proxmox-backup/encryption-key.json
Avec --encryption no (ou --crypt-mode none à la main), les sauvegardes partent en clair : seule la protection du transport et de votre datastore s’applique. L’explorateur de fichiers de l’espace client ne peut lire que des sauvegardes non chiffrées.
Restaurer
Les sauvegardes d’un serveur apparaissent dans l’espace client, onglet Sauvegardes, avec le type hôte et l’identifiant de ce serveur.
- Depuis l’espace client : pour une sauvegarde non chiffrée, l’explorateur de fichiers permet de consulter les dossiers et de récupérer quelques fichiers (outil de consultation, pour restaurer utilisez Proxmox Backup Client), sans rien installer.
- Depuis le serveur (ou tout autre serveur où le client est installé), avec
proxmox-backup-client. Si les sauvegardes sont chiffrées, la clé doit être présente et indiquée avec--keyfile.
export PBS_REPOSITORY='acme@pbs!pve@pbs-01.exemple.fr:8007:acme'
export PBS_PASSWORD_FILE=/etc/mypbs/secret
# Lister les sauvegardes disponibles
proxmox-backup-client snapshot list
# Parcourir le contenu d'une sauvegarde
proxmox-backup-client catalog dump host/mon-serveur/2026-10-24T19:00:00Z
# Restaurer une archive dans un dossier de travail
proxmox-backup-client restore host/mon-serveur/2026-10-24T19:00:00Z etc.pxar /var/tmp/restauration \
--keyfile /root/.config/proxmox-backup/encryption-key.json
Restaurez toujours dans un dossier de travail, puis copiez les fichiers voulus : vous évitez d’écraser le système en cours d’utilisation. Pour restaurer le serveur entier sur une machine neuve, installez le même système, le client et la clé, puis restaurez l’archive root.pxar. Retirez --keyfile pour une sauvegarde non chiffrée. Les restaurations restent possibles quand le datastore est en lecture seule.
Sauvegarder la configuration d’un hôte Proxmox VE
Sur un hôte Proxmox VE, le mode --proxmox du script sauvegarde la configuration de l’hôte : définitions des VM et des conteneurs, stockages, réseau, utilisateurs et droits, pare-feu, clés du cluster. Il ne sauvegarde pas les disques des VM, qui se sauvegardent depuis Proxmox VE par un stockage myPBS (voir Connecter Proxmox VE). Les deux se complètent : les VM pour les données, ce mode pour reconstruire l’hôte qui les porte.
L’espace client affiche cette ligne sous la ligne d’installation, avec le titre « Hôte Proxmox VE ». Elle ressemble à ceci :
curl -fsSL https://mypbs.cloud/install/linux-server.sh -o mypbs-install.sh && bash mypbs-install.sh --server pbs-01.exemple.fr --port 8007 --datastore acme --user 'acme@pbs!pve' --proxmox --per-day 1
Elle se lance en root, sans sudo, qu’un Proxmox VE n’installe pas. Le secret du jeton vous est demandé à l’écran, sans être affiché. Pour gérer l’installation ensuite, tapez de même mypbs-backup sans sudo.
Lancé sans --proxmox sur un hôte Proxmox VE, avec un terminal, le script reconnaît l’hôte et propose cette sauvegarde. À l’inverse, --proxmox sur un serveur qui n’est pas un Proxmox VE est refusé.
Ce qui est sauvegardé
Une seule sauvegarde par passage, de type hôte, dont l’identifiant par défaut est pve- suivi du nom court du nœud (pve-pve1 pour un nœud pve1). Elle contient quatre archives, trois sans chiffrement (la base de configuration n’est alors pas envoyée, voir Chiffrer la sauvegarde) :
| Archive | Contenu |
|---|---|
pve-config.pxar |
une copie de /etc/pve, faite juste avant l’envoi : VM (qemu-server/), conteneurs (lxc/), storage.cfg, user.cfg, pare-feu, clés du cluster |
pve-db.pxar |
une copie cohérente de la base /var/lib/pve-cluster/config.db (avec chiffrement seulement) |
etc.pxar |
/etc : réseau (/etc/network/interfaces), hôtes, ssh, dépôts, unités systemd locales |
root.pxar |
/root : vos scripts et .ssh |
Quelques précisions :
/etc/pveest un système de fichiers particulier, que le client de sauvegarde ne lit pas directement. Le script le copie donc d’abord dans un dossier de travail,/var/lib/mypbs/pve/(accessible à root seulement), refait à chaque passage, et c’est cette copie qui est envoyée. Si la copie échoue, ou n’a pas fini au bout de 5 minutes (unpve-clusterbloqué, par exemple), aucune sauvegarde n’est envoyée et un message l’explique. La copie reste en place entre deux passages : elle contient les secrets de l’hôte, d’où son accès réservé à root.- Cette copie de la base n’est faite qu’avec le chiffrement : sans lui, la base contiendrait la clé de vos sauvegardes de VM, le script ne la copie pas et le dit. La suite de ce point vaut donc pour une sauvegarde chiffrée. La base en service n’est jamais ouverte par le script :
pve-clusterl’utilise en permanence, et une autre connexion à cette base pourrait perturber son journal. Le script copie donc ses fichiers, recommence sipve-clusterles réécrit pendant la copie, puis vérifie la copie avecsqlite3s’il est présent, sinonpython3. Si le journal de la base (config.db-wal) a disparu alors quepve-clustertourne, signe qu’un outil a ouvert la base, le script le signale et conseille de redémarrerpve-clusterà un moment calme (systemctl restart pve-cluster) : il ne le fait pas lui-même. Si aucun des deux n’est installé, ou si aucune copie valide n’a pu être faite,pve-db.pxarest omise et un message le signale : la copie des fichiers de/etc/pvesuffit à tout restaurer à la main. Ce mode n’installe jamais de paquet, pas mêmeproxmox-backup-client: s’il manque, installez-le vous-même (apt-get install proxmox-backup-client), puis relancez le script. - La clé de chiffrement de myPBS (
/root/.config/proxmox-backup/encryption-key.json) et le secret du jeton du script (/etc/mypbs/secret, et sa copie de secourssecret.prev) sont toujours exclus des archives. En revanche, la copie de/etc/pvecontient les mots de passe des stockages (priv/storage/*.pw), dont le secret du jeton myPBS de votre stockage Proxmox VE, et, avec le chiffrement seulement, la clé de chiffrement de vos sauvegardes de VM (priv/storage/*.enc, aussi présente dans la base de configuration) : voir Chiffrer la sauvegarde. - Ce qui est sauvegardé est fixé.
--proxmoxne se combine pas avec--foldersni--whole-host, et le menu demypbs-backupn’offre pas « Changer ce qui est sauvegardé ». Pour sauvegarder des dossiers choisis, désinstallez puis réinstallez sans--proxmox. De même, une installation faite en mode serveur doit être désinstallée avant de passer au mode Proxmox, et l’inverse. - Le rythme par défaut est 1 sauvegarde par jour, quel que soit celui de votre offre ;
--per-day Nle modifie dans les mêmes bornes que d’habitude (1 à 4). --idreste possible. La désinstallation (mypbs-backup --uninstall) supprime aussi/var/lib/mypbs/.
Chiffrer la sauvegarde
Cette sauvegarde contient les secrets de l’hôte : la définition et les mots de passe des stockages (priv/storage/*.pw, dont le secret du jeton myPBS), les clés du cluster, les clés ssh, et la clé de chiffrement de vos sauvegardes de VM (priv/storage/*.enc) si vous chiffrez vos sauvegardes de VM. Le script le rappelle et recommande nettement le chiffrement : répondez oui à la question, ou passez --encryption yes. En mode non interactif, --encryption yes ou no reste obligatoire.
- Avec chiffrement, les clés
.enc, les mots de passe.pwet la base de configuration (pve-db.pxar) sont dans la sauvegarde, protégés par votre clé. - Sans chiffrement, les clés
.encet la base de configuration (qui les contient aussi) sont laissées de côté : une sauvegarde en clair ne doit pas contenir de quoi lire vos sauvegardes de VM. Le script le dit à chaque passage, et la copie des fichiers de/etc/pvesuffit pour restaurer. Gardez les clés ailleurs que sur l’hôte, comme le conseille Proxmox VE. Les mots de passe.pw, eux, partent dans la sauvegarde : toute personne qui peut lire vos sauvegardes sur myPBS y a accès.
Le contrepoint : une sauvegarde chiffrée ne s’ouvre pas dans l’explorateur de fichiers de l’espace client, et il faut la clé pour la restaurer. Conservez la clé hors de l’hôte, comme pour un serveur ordinaire (voir Chiffrement) : si l’hôte est perdu, la clé qui était dessus l’est aussi.
Un cluster
Chaque nœud d’un cluster s’installe séparément, avec son propre identifiant (pve-<nœud>). La copie de /etc/pve est la même sur tous les nœuds, puisque le cluster la partage : c’est voulu, chaque nœud en garde une copie complète, ce qui sert si un seul nœud survit. Ce qui diffère d’un nœud à l’autre se trouve dans etc.pxar et root.pxar.
Restaurer la configuration d’un hôte
Le principe est de restaurer vers un dossier de travail, puis de copier uniquement ce dont vous avez besoin. Ne remplacez jamais /etc/pve en bloc, ni config.db sur un cluster en marche : ces données sont gérées par le service pve-cluster, et un remplacement à chaud peut corrompre la configuration de tous les nœuds.
Sur l’hôte encore installé, le secret (/etc/mypbs/secret) et la clé (/root/.config/proxmox-backup/encryption-key.json) sont en place : utilisez-les directement dans les commandes ci-dessous. Sur un nœud réinstallé ou sur une autre machine où le client est installé, ils n’existent pas : préparez-les d’abord, en root.
-
Le secret du jeton, dans un fichier lisible par root seul. Collez-y le secret seul, sur une ligne :
install -m 600 /dev/null /root/mypbs-secret && nano /root/mypbs-secretLe secret se lit en root sur un nœud survivant du cluster, dans
/etc/pve/priv/storage/<id-du-stockage>.pw(voir Retrouver le secret sur un nœud Proxmox VE). Sinon, régénérez le jeton depuis l’espace client et prenez le nouveau secret affiché, puis mettez à jour vos autres hôtes et serveurs. -
La clé de chiffrement, si la sauvegarde est chiffrée : recopiez la clé que vous avez gardée hors de l’hôte, par exemple dans
/root/mypbs-key.json(créé de la même façon,install -m 600 /dev/null /root/mypbs-key.json && nano /root/mypbs-key.json), et indiquez-la avec--keyfile.
export PBS_REPOSITORY='acme@pbs!pve@pbs-01.exemple.fr:8007:acme'
export PBS_PASSWORD_FILE=/root/mypbs-secret # sur l'hôte encore installé : /etc/mypbs/secret
# Trouver la sauvegarde voulue (type host, identifiant pve-<nœud>)
proxmox-backup-client snapshot list
# Restaurer la copie de /etc/pve dans un dossier de travail
proxmox-backup-client restore host/pve-pve1/2026-10-24T19:00:00Z pve-config.pxar /var/tmp/restauration-pve \
--keyfile /root/mypbs-key.json # sur l'hôte encore installé : /root/.config/proxmox-backup/encryption-key.json
Une fois la restauration finie, supprimez les deux fichiers préparés : rm -f /root/mypbs-secret /root/mypbs-key.json. Si vous réinstallez ensuite myPBS sur ce nœud avec la même clé, placez-la plutôt dans /root/.config/proxmox-backup/encryption-key.json avant de lancer le script : il la réutilise.
Retirez --keyfile pour une sauvegarde non chiffrée, qui peut aussi se parcourir et se télécharger depuis l’espace client. Remplacez pve-config.pxar par etc.pxar ou root.pxar pour les deux autres archives. proxmox-backup-client catalog dump liste le contenu d’une sauvegarde sans la restaurer.
Cas courants, à traiter un fichier à la fois, depuis le dossier de travail :
- Une VM dont la définition a disparu : copiez
qemu-server/<id>.conf(oulxc/<id>.conf) vers le même chemin sous/etc/pve/. Les disques doivent exister sur un stockage. - Les stockages : relisez
storage.cfget recréez les blocs voulus avecpvesmou l’interface web. Les secrets des stockages sont danspriv/storage/(sans chiffrement, les clés.encn’y sont pas, et la base de configuration n’a pas été envoyée : reprenez les clés gardées hors de l’hôte). - Les utilisateurs et les droits : même méthode avec
user.cfg, ou refaites-les dans l’interface web. - Le pare-feu :
firewall/cluster.fwet les fichiers<id>.fw. - Le réseau :
/etc/network/interfacesse trouve dans la restauration deetc.pxar. Comparez-le avec le fichier actuel avant de le remplacer, et gardez un accès à la console de l’hôte, car une erreur réseau coupe l’accès à distance.
Hôte réinstallé, hors cluster : réinstallez Proxmox VE avec le même nom d’hôte, préparez le secret et la clé comme ci-dessus, puis restaurez dans /var/tmp/. Remettez le réseau (/etc/network/interfaces), puis, le service pve-cluster étant en marche, recopiez fichier par fichier les éléments voulus de pve-config.pxar vers /etc/pve/.
Hôte réinstallé dans un cluster existant : réinstallez Proxmox VE, puis faites-le rejoindre le cluster normalement (pvecm add, ou l’interface web). La configuration du cluster revient d’elle-même depuis les autres nœuds. Ne remettez que ce qui est propre au nœud, comme son réseau, ses dépôts ou ses scripts, depuis etc.pxar et root.pxar. Ne replacez ni config.db ni le contenu de /etc/pve.
Pour les reprises plus lourdes (cluster perdu, quorum, remplacement d’un nœud), suivez la documentation de Proxmox VE sur la gestion de cluster (pvecm) : ce guide ne la remplace pas.
Surveiller
Avec systemd, vérifiez la prochaine échéance et le résultat des dernières sauvegardes :
systemctl list-timers mypbs-backup.timer
journalctl -u mypbs-backup
Avec cron, le résultat de chaque sauvegarde est envoyé par courriel à root si le serveur sait envoyer du courrier, sinon il est perdu. Dans tous les cas, l’espace client, onglet Sauvegardes, montre les sauvegardes reçues : si la dernière est trop ancienne, lancez sudo mypbs-backup --now et lisez le message d’erreur.
Pour les erreurs de connexion, de permission ou de clé, voir Dépannage.
Régénérer le jeton
Depuis l’espace client, vous pouvez générer un nouveau secret, par exemple si l’ancien a été perdu ou exposé. L’ancien est révoqué immédiatement : les sauvegardes échouent tant que le serveur n’a pas le nouveau secret. Mettez-le à jour :
sudo mypbs-backup --change-secret
Le secret est demandé à l’écran sans être affiché ; pour un script, ajoutez --secret-file FICHIER. À la main, remplacez le contenu de /etc/mypbs/secret (droits 600). Le nom d’utilisateur ne change pas, et vos sauvegardes existantes restent rattachées au même jeton. Voir aussi Connecter Proxmox VE pour le fonctionnement du jeton, qui ne peut pas supprimer de sauvegarde.
Retrouver le secret sur un nœud Proxmox VE
Si vous avez déjà connecté un nœud Proxmox VE à ce datastore et perdu le secret affiché dans l’espace client, il reste lisible en root sur ce nœud :
cat /etc/pve/priv/storage/<id-du-stockage>.pw
<id-du-stockage> est l’ID du stockage (par exemple mypbs-acme). Ne le collez pas dans une commande ni dans un message ; recopiez-le dans le fichier du secret, ou régénérez le jeton depuis l’espace client.