Retour au blogTutoriel · Linux

    Sauvegarder un serveur Linux avec proxmox-backup-client

    Debian, Ubuntu, RHEL, Rocky, Alma, Fedora, Arch et Alpine, en amd64 comme en arm64 : installer le client officiel, le relier à votre PBS avec un jeton API, chiffrer, planifier et restaurer.

    12 min de lecture

    proxmox-backup-client est l'outil en ligne de commande qui sauvegarde les fichiers d'une machine Linux vers un Proxmox Backup Server (PBS) : déduplication, compression, chiffrement côté client et restauration fichier par fichier. Proxmox ne le publie que pour Debian. Nous republions son build statique officiel, sans le recompiler, dans un dépôt non officiel installable avec les outils standard de chaque distribution.

    Pour Windows, voir notre client Windows pour PBS. Pour garder vos jobs restic ou rsync, voir la sauvegarde de serveurs Linux via la Gateway.

    En bref

    1. Installer le paquet depuis le dépôt de votre distribution.
    2. Créer un jeton API sur le PBS et le ranger dans un fichier lisible par root seul.
    3. Créer une clé de chiffrement avant le premier backup, et la sauvegarder ailleurs.
    4. Lancer proxmox-backup-client backup root.pxar:/.
    5. Planifier avec un timer systemd, ou cron.
    6. Tester une restauration. Une sauvegarde jamais restaurée n'est pas une sauvegarde.

    1. Installer le client

    Les commandes ci-dessous ajoutent le dépôt, sa clé de signature, puis installent le paquet. Toutes les métadonnées sont signées : aucune option du type --nogpgcheck ou --allow-untrusted n'est nécessaire, et il ne faut pas en ajouter. L'empreinte de la clé est affichée sur la page du dépôt : comparez-la à celle que votre gestionnaire de paquets vous présente.

    Debian et Ubuntu

    Le dépôt sert le .deb officiel de Proxmox tel quel, octet pour octet. Le paquet s'appelle proxmox-backup-client-static ; sa seule dépendance est qrencode.

    Debian 10 à sid, Ubuntu 20.04 à 26.04 (root)
    install -d /etc/apt/keyrings
    curl -fsSL -o /etc/apt/keyrings/unofficial-repository-proxmox-backup-client.asc \
      https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/keys/unofficial-repository-proxmox-backup-client.asc
    echo "deb [signed-by=/etc/apt/keyrings/unofficial-repository-proxmox-backup-client.asc] https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/deb stable main" \
      > /etc/apt/sources.list.d/unofficial-repository-proxmox-backup-client.list
    apt update
    apt install proxmox-backup-client-static

    Sur Debian, le dépôt pbs-client de Proxmox reste une alternative officielle : il fournit le même paquet, signé par Proxmox.

    RHEL, Rocky, Alma, Fedora

    dnf (root)
    curl -fsSL -o /etc/yum.repos.d/unofficial-repository-proxmox-backup-client.repo \
      https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/rpm/unofficial-repository-proxmox-backup-client.repo
    dnf install proxmox-backup-client

    Au premier dnf install, dnf affiche l'empreinte de la clé et demande de l'importer : vérifiez-la avant d'accepter.

    Arch Linux

    pacman (root)
    curl -fsSL -o /tmp/upc.asc https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/keys/unofficial-repository-proxmox-backup-client.asc
    gpg --show-keys /tmp/upc.asc      # comparez l'empreinte avec celle de la page du dépôt
    pacman-key --add /tmp/upc.asc
    pacman-key --lsign-key "$(gpg --with-colons --show-keys /tmp/upc.asc | awk -F: '/^fpr:/{print $10; exit}')"
    printf '\n[unofficial-repository-proxmox-backup-client]\nServer = https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/arch/$arch\n' >> /etc/pacman.conf
    pacman -Syu proxmox-backup-client

    Alpine

    apk (root)
    wget -O /etc/apk/keys/unofficial-repository-proxmox-backup-client.rsa.pub \
      https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/keys/unofficial-repository-proxmox-backup-client.rsa.pub
    echo "https://nimbus.rdem-systems.com/unofficial-repository-proxmox-backup-client/alpine" >> /etc/apk/repositories
    apk add proxmox-backup-client

    arm64

    Mêmes commandes. Les paquets arm64 viennent du build statique aarch64 officiel que Proxmox publie dans le composant test de son dépôt client : il est officiel, mais peut avoir une version de retard sur amd64. La page du dépôt indique la version disponible pour chaque architecture.

    La CI tourne sur notre infrastructure Proxmox, et nous avons dû changer un paramètre pour créer ce dépôt. Si vous voulez d'autres distributions, faites-le-nous savoir, en nous disant pourquoi.

    Vérifiez l'installation :

    toutes distributions
    proxmox-backup-client version

    Et si j'extrais le .deb à la main ?

    Le binaire démarre, mais hors Debian et Ubuntu il refuse les certificats valides : certificate validation failed - Certificate fingerprint was not confirmed. Il a été compilé avec le répertoire OpenSSL de Debian, /usr/lib/ssl, et n'y trouve aucune autorité de certification. Nous l'avons constaté sur Alpine 3.24 et Fedora 43.

    Nos paquets posent deux liens, /usr/lib/ssl/cert.pem et /usr/lib/ssl/certs, vers les certificats de la distribution. C'est notre seule modification. Si vous tenez à l'extraction manuelle, exportez SSL_CERT_FILE vers le fichier de certificats de votre distribution (/etc/pki/tls/certs/ca-bundle.crt sur RHEL et Fedora, /etc/ssl/certs/ca-certificates.crt sur Alpine et Arch).

    2. Relier le client au PBS avec un jeton API

    Utilisez un jeton API dédié à la machine plutôt qu'un mot de passe : il se révoque seul, sans toucher aux autres machines. Chez NimbusBackup, la création du jeton est décrite dans la gestion des tokens ; le fichier JSON téléchargé contient tout ce qu'il faut :

    jeton téléchargé (exemple fictif)
    {
      "baseurl": "https://pbs-01.nimbus.rdem-systems.com:8007",
      "authid": "backup_47_uvrno2hngh@pbs!serveur01",
      "secret": "0490bc61-368e-4b3f-b80b-430015dea457",
      "datastore": "ds_47_uvrno2hngh"
    }

    Le client attend un dépôt de la forme authid@serveur:port:datastore. Rangez-le avec le secret dans un fichier lisible par root seul :

    /etc/proxmox-backup-client/pbs.env (chmod 600)
    PBS_REPOSITORY=backup_47_uvrno2hngh@pbs!serveur01@pbs-01.nimbus.rdem-systems.com:8007:ds_47_uvrno2hngh
    PBS_PASSWORD=0490bc61-368e-4b3f-b80b-430015dea457
    root
    install -d -m 700 /etc/proxmox-backup-client
    install -m 600 /dev/null /etc/proxmox-backup-client/pbs.env   # créé vide, lisible par root seul
    # … y écrire les deux lignes ci-dessus, avec votre éditeur …
    set -a; . /etc/proxmox-backup-client/pbs.env; set +a
    proxmox-backup-client snapshot list      # vide au début : la connexion fonctionne

    Empreinte. Un PBS avec un certificat valide, comme ceux de NimbusBackup, ne demande rien. Un PBS auto-signé demande son empreinte : copiez-la depuis le tableau de bord du PBS (Show Fingerprint) et ajoutez PBS_FINGERPRINT=… au fichier.

    3. Créer la clé de chiffrement, avant le premier backup

    Le chiffrement côté client chiffre vos données en AES-256 avant qu'elles quittent la machine : le serveur ne stocke que des blocs illisibles sans votre clé. Créez-la tout de suite. Une sauvegarde chiffrée ne se déduplique pas avec une sauvegarde en clair, activer le chiffrement plus tard renvoie donc tout.

    root
    # Sans phrase de passe, pour une sauvegarde planifiée (le fichier est la clé : protégez-le)
    proxmox-backup-client key create --kdf none /etc/proxmox-backup-client/encryption-key.json
    chmod 600 /etc/proxmox-backup-client/encryption-key.json
    
    # Copie papier ou texte (avec QR code), à ranger hors de ce serveur
    proxmox-backup-client key paperkey /etc/proxmox-backup-client/encryption-key.json --output-format text

    key paperkey dessine le QR code avec la commande qrencode, installée avec le paquet sur Debian, Ubuntu, Arch et Alpine, et en dépendance recommandée sur RHEL et Fedora : si elle manque, installez-la.

    Sans cette clé, personne ne peut restaurer : ni vous, ni l'hébergeur du PBS. Gardez-en une copie hors de la machine sauvegardée, et hors du PBS.

    4. Premier backup

    root (fichier d'environnement chargé)
    proxmox-backup-client backup root.pxar:/ \
      --keyfile /etc/proxmox-backup-client/encryption-key.json
    • Un système de fichiers par archive. Par défaut, le client ne franchit pas les points de montage : si /home ou /var sont sur des partitions séparées, ajoutez une archive par partition (home.pxar:/home) ou l'option --include-dev /home.
    • Exclusions. Un fichier .pxarexclude dans un répertoire, ou --exclude en ligne de commande (caches, /tmp, dumps déjà sauvegardés ailleurs).
    • Serveurs avec beaucoup de fichiers. --change-detection-mode metadata compare les métadonnées au snapshot précédent au lieu de relire chaque fichier inchangé. Le revers : un fichier modifié sans que ses métadonnées changent passerait inaperçu. À réserver aux arborescences où c'est acceptable.
    • L'identifiant de sauvegarde est le nom d'hôte ; --backup-id le remplace.

    5. Planifier avec un timer systemd

    /etc/systemd/system/pbs-backup.service
    [Unit]
    Description=Sauvegarde vers Proxmox Backup Server
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=oneshot
    EnvironmentFile=/etc/proxmox-backup-client/pbs.env
    ExecStart=/usr/bin/proxmox-backup-client backup root.pxar:/ \
      --keyfile /etc/proxmox-backup-client/encryption-key.json \
      --change-detection-mode metadata
    Nice=10
    IOSchedulingClass=idle
    /etc/systemd/system/pbs-backup.timer
    [Unit]
    Description=Sauvegarde quotidienne vers Proxmox Backup Server
    
    [Timer]
    OnCalendar=*-*-* 02:30:00
    RandomizedDelaySec=30min
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    root
    systemctl daemon-reload
    systemctl enable --now pbs-backup.timer
    systemctl start pbs-backup.service        # un premier passage tout de suite
    journalctl -u pbs-backup.service -n 50    # le résultat

    Sans systemd (Alpine) : une ligne dans la crontab de root suffit.

    crontab -e (root)
    30 2 * * * umask 077; set -a; . /etc/proxmox-backup-client/pbs.env; set +a; flock -n /run/pbs-backup.lock /usr/bin/proxmox-backup-client backup root.pxar:/ --keyfile /etc/proxmox-backup-client/encryption-key.json >> /var/log/pbs-backup.log 2>&1

    umask 077 pour que le journal ne soit pas lisible par tous, et flock pour qu'une sauvegarde qui déborde n'en déclenche pas une seconde.

    Sur l'offre AirGapped Drive PBS, il est fortement conseillé de placer l'horaire en dehors du créneau hebdomadaire de 4 heures réservé à la prise du snapshot qui part sur les disques hors ligne : un backup en cours à ce moment-là serait incomplet sur la copie hors ligne. La rétention, elle, se règle côté serveur : chez NimbusBackup, le jeton ne peut pas supprimer, et c'est nous qui appliquons la rétention.

    6. Restaurer un fichier

    lister les sauvegardes
    proxmox-backup-client snapshot list

    Pour retrouver quelques fichiers, le plus confortable est le shell du catalogue :

    catalog shell
    proxmox-backup-client catalog shell host/serveur01/2026-09-11T02:30:12Z root.pxar \
      --keyfile /etc/proxmox-backup-client/encryption-key.json
    pxar:/ > find etc/nginx/**/*.conf --select
    pxar:/ > restore-selected /tmp/restauration

    Ou en une commande, avec un motif :

    restore
    proxmox-backup-client restore host/serveur01/2026-09-11T02:30:12Z root.pxar /tmp/restauration \
      --pattern 'etc/nginx/**' \
      --keyfile /etc/proxmox-backup-client/encryption-key.json

    mount monte aussi une archive en lecture seule, par FUSE, pour parcourir une sauvegarde comme un répertoire — il faut FUSE disponible sur la machine, et penser à démonter :

    monter puis démonter
    proxmox-backup-client mount host/serveur01/2026-09-11T02:30:12Z root.pxar /mnt/sauvegarde \
      --keyfile /etc/proxmox-backup-client/encryption-key.json
    ls /mnt/sauvegarde
    fusermount3 -u /mnt/sauvegarde                # ou « umount /mnt/sauvegarde » en root

    Restaurez sur un autre serveur de temps en temps : c'est le seul test qui prouve que la clé, le jeton et les données vont ensemble.

    Questions fréquentes

    Le client installé par ce dépôt est-il le client officiel ?

    Oui pour le binaire, non pour le dépôt. Les fichiers proxmox-backup-client et pxar sont ceux du paquet officiel proxmox-backup-client-static de Proxmox, vérifiés contre l'index signé de Proxmox et jamais recompilés. Le dépôt, lui, est tenu par RDEM Systems : il est non officiel et n'est pas affilié à Proxmox Server Solutions GmbH. Sur Debian, vous pouvez aussi passer directement par le dépôt pbs-client de Proxmox.

    Pourquoi le client refuse-t-il un certificat valide sur RHEL, Fedora ou Alpine ?

    Parce que le binaire statique a été compilé avec le répertoire OpenSSL de Debian, /usr/lib/ssl, qui n'existe pas ailleurs. Sans ce répertoire, le client ne trouve aucune autorité de certification et réclame une empreinte, même face à un certificat parfaitement valide. Nos paquets RPM, Arch et Alpine ajoutent deux liens symboliques vers les certificats de la distribution. Si vous extrayez le .deb à la main, exportez SSL_CERT_FILE vers le fichier de certificats de votre distribution.

    Le client 4.x fonctionne-t-il avec un PBS 3.x ?

    Proxmox écrit, dans son guide de migration 3 vers 4, tester la compatibilité entre les versions majeures encore suivies, dont la précédente ; au-delà, c'est au mieux un effort raisonnable. Nous recommandons d'aligner la version majeure du client sur celle du serveur, et de vérifier vous-même sauvegarde, listing et restauration avant de passer en production.

    Puis-je activer le chiffrement après plusieurs sauvegardes ?

    Oui, mais il ne s'applique qu'aux sauvegardes faites avec la clé : les précédentes restent en clair. Et une sauvegarde chiffrée ne se déduplique ni avec les sauvegardes non chiffrées, ni avec celles chiffrées par une autre clé. La première sauvegarde chiffrée renvoie donc toutes les données. C'est pourquoi nous conseillons de créer la clé avant le premier backup.

    Comment planifier la sauvegarde sans systemd, sur Alpine par exemple ?

    Avec cron. Une ligne dans la crontab de root qui charge le fichier d'environnement puis lance proxmox-backup-client backup suffit. Le reste de ce guide (jeton, clé, restauration) est identique.

    Qui gère la rétention et la suppression des anciennes sauvegardes ?

    Le serveur. Sur votre propre PBS, ce sont les prune jobs du datastore. Chez NimbusBackup, le jeton fourni ne peut pas supprimer : il crée et restaure ses propres sauvegardes, rien d'autre. C'est nous qui appliquons la rétention convenue, ce qui empêche aussi un attaquant qui aurait volé le jeton d'effacer vos sauvegardes.

    Le client est installé. Il lui faut une cible hors site.

    NimbusBackup héberge des Proxmox Backup Server managés, facturés au To utile : jeton en écriture seule, supervision, et options de réplication sur deux sites, de disques hors ligne ou de bande LTO. À partir de 12 € HT par To et par mois.