PROXMOX-BACKUP-CLIENT(1)

πŸ“¦
version 4.2.0 Β· 2 versions
, in nixos 26.05

🌸 NAME 🌸

proxmox-backup-client β€” Command line tool for Backup and Restore. This is the PROXMOX-BACKUP-CLIENT(1) page from the Proxmox Backup manual, and bestie, it's literally the CLI for backup and restore. πŸ’–


✨ SYNOPSIS ✨

okay so every command gets its own little moment here. Keep the code exactly as written β€” no renaming, no merging, no invented flags. πŸ’…

πŸ’Ύ backup β€” the main character πŸ’Ύ

proxmox-backup-client backup {<backupspec>} [OPTIONS]

Create a (host) backup. Main character energy, honestly.

<backupspec> (<string>) β€” List of backup source specifications:

[<archive-name>.<type>:<source-path>] ...

The archive-name must only contain alphanumerics, hyphens and underscores while the type must be either pxar, img, conf or log. Can be specified more than once.

bestie, those archive-name rules are strict β€” do not freestyle them. 🫢

Optional parameters:

  • --all-file-systems <boolean> β€” default=false. Include all mounted subdirectories.
  • --auth-id <string> β€” Authentication ID.
  • --backup-id <string> β€” Backup ID.
  • --backup-time <integer> β€” (1 - N). Backup time (Unix epoch.)
  • --backup-type vm|ct|host β€” Backup type.
  • --burst <string> β€” Size of the token bucket (for Token bucket filter) in bytes with optional unit (B, KB (base 10), MB, GB, ..., KiB (base 2), MiB, Gib, ...).
  • --change-detection-mode legacy|data|metadata β€” default=legacy. Mode to detect file changes since last backup run.
  • --chunk-size <integer> β€” (64 - 4096), default=4096. Chunk size in KB. Must be a power of 2.
  • --crypt-mode none|encrypt|sign-only β€” default=encrypt. Defines whether data is encrypted (using an AEAD cipher), only signed, or neither.
  • --datastore <string> β€” Datastore name.
  • --dry-run <boolean> β€” default=false. Just show what backup would do, but do not upload anything.
  • --entries-max <integer> β€” default=1048576. Max number of entries to hold in memory.
  • --exclude <string> β€” List of paths or patterns for matching files to exclude. Can be specified more than once.
  • --include-dev <string> β€” Include mountpoints with same st_dev number (see man fstat) as specified files. Can be specified more than once.
  • --keyfd <integer> β€” (0 - N). Pass an encryption key via an already opened file descriptor.
  • --keyfile <string> β€” Path to encryption key. All data will be encrypted using this key.
  • --master-pubkey-fd <integer> β€” (0 - N). Pass a master public key via an already opened file descriptor.
  • --master-pubkey-file <string> β€” Path to master public key. The encryption key used for a backup will be encrypted using this key and appended to the backup.
  • --no-cache <boolean> β€” default=false. Bypass local datastore cache for network storages.
  • --ns <string> β€” Namespace.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --rate <string> β€” Rate limit (for Token bucket filter) in bytes/s with optional unit (B, KB (base 10), MB, GB, ..., KiB (base 2), MiB, Gib, ...).
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.
  • --skip-e2big-xattr <boolean> β€” default=false. Ignore the E2BIG error when retrieving xattrs. This includes the file, but discards the metadata.
  • --skip-lost-and-found <boolean> β€” default=false. Skip lost+found directory.

⚑ benchmark β€” vibe check the server ⚑

proxmox-backup-client benchmark [OPTIONS]

Run benchmark tests.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --keyfile <string> β€” Path to encryption key. All data will be encrypted using this key.
  • --no-cache <boolean> β€” default=false. Bypass local datastore cache for network storages.
  • --output-format text|json|json-pretty β€” Output format.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

πŸ—‚οΈ catalog dump β€” dump the catalog πŸ—‚οΈ

proxmox-backup-client catalog dump <snapshot> [OPTIONS]

Dump catalog.

<snapshot> (<string>) β€” Snapshot path.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --keyfd <integer> β€” (0 - N). Pass an encryption key via an already opened file descriptor.
  • --keyfile <string> β€” Path to encryption key.
  • --ns <string> β€” Namespace.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

🐚 catalog shell β€” peek inside, bestie 🐚

proxmox-backup-client catalog shell <snapshot> <archive-name> [OPTIONS]

Shell to interactively inspect and restore snapshots.

<snapshot> (<string>) β€” Group/Snapshot path.

<archive-name> (<string>) β€” Backup archive name.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --keyfd <integer> β€” (0 - N). Pass an encryption key via an already opened file descriptor.
  • --keyfile <string> β€” Path to encryption key.
  • --ns <string> β€” Namespace.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

πŸ‘‘ change-owner β€” hand over the group πŸ‘‘

proxmox-backup-client change-owner <group> <new-owner> [OPTIONS]

Change owner of a backup group.

<group> (<string>) β€” Backup group.

<new-owner> (<string>) β€” Authentication ID.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --ns <string> β€” Namespace.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

🧹 garbage-collect β€” clean it up 🧹

proxmox-backup-client garbage-collect [OPTIONS]

Start garbage collection for a specific repository.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --output-format text|json|json-pretty β€” Output format.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

πŸ™ˆ group forget β€” forget (remove) snapshots πŸ™ˆ

proxmox-backup-client group forget <group> [OPTIONS]

Forget (remove) backup snapshots.

<group> (<string>) β€” Backup group.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --ns <string> β€” Namespace.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

πŸ¦‹ group move β€” new namespace, same datastore πŸ¦‹

proxmox-backup-client group move <group> --target-ns <string> [OPTIONS]

Move a backup group to a different namespace within the same datastore.

<group> (<string>) β€” Backup group.

--target-ns <string> β€” Namespace.

Optional parameters:

  • --auth-id <string> β€” Authentication ID.
  • --datastore <string> β€” Datastore name.
  • --merge-group <boolean> β€” default=true. If the group already exists in the target namespace, merge snapshots into it. Requires matching ownership and non-overlapping snapshot times.
  • --ns <string> β€” Namespace.
  • --output-format text|json|json-pretty β€” Output format.
  • --port <integer> β€” (1 - 65535), default=8007. Backup server port. Default: 8007.
  • --repository <string> β€” Repository URL: [[auth-id@]server[:port]:]datastore.
  • --server <string> β€” Backup server address (hostname or IP). Default: localhost.

πŸŽ€ help β€” when you need the lore πŸŽ€

proxmox-backup-client help [{<command>}] [OPTIONS]

Get help about specified command (or sub-command).

<command> (<string>) β€” Command. This may be a list in order to specify nested sub-commands. Can be specified more than once.

Optional parameters:

  • --verbose <boolean> β€” Verbose help.

πŸ”‘ key change-passphrase β€” new password, who dis πŸ”‘β€‹

proxmox-backup-client key change-passphrase [<path>] [OPTIONS]

Change the encryption key's password.

<path> (<string>) β€” Key file. Without this the default key's password will be changed.

Optional parameters:

  • --hint <string> β€” Password hint.
  • --kdf none|scrypt|pbkdf2 β€” default=scrypt. Key derivation function for password protected encryption keys.

🧚 key create β€” make a new encryption key 🧚

proxmox-backup-client key create [<path>] [OPTIONS]

Create a new encryption key.

<path> (<string>) β€” Output file. Without this the key will become the new default encryption key.

Optional parameters:

  • --hint <string> β€” Password hint.
  • --kdf none|scrypt|pbkdf2 β€” default=scrypt. Key derivation function for password protected encryption keys.

πŸ’œ key create-master-key β€” RSA public/private key pair πŸ’œ

proxmox-backup-client key create-master-key

Create an RSA public/private key pair used to put an encrypted version of the symmetric backup encryption key onto the backup server along with each backup.


🌈 key import-master-pubkey β€” import that RSA public key 🌈

proxmox-backup-client key import-master-pubkey <path>

Import an RSA public key used to put an encrypted version of the symmetric backup encryption key onto the backup server along with each backup.

The imported key will be used as default master key for future invocations by the same local user.

<path> (<string>) β€” Path to the PEM formatted RSA public key.


⭐ key import-with-master-key β€” part 1 stops here ⭐

proxmox-backup-client key import-with-master-key [<path>] --encrypted-keyfile <string> --master-keyfile <string> [OPTIONS]

Okay so this next one is the key-import situation, and it's giving ✨security core✨ β€” it pulls in an encrypted backup of an encryption key using a (private) master key πŸ”

  • <path> (string) β€” the output file, bestie. And lowkey the important bit: if you don't pass this, the imported key becomes the new default encryption key πŸ‘‘
  • --encrypted-keyfile <string> β€” the RSA-encrypted keyfile you're importing πŸŽ€
  • --master-keyfile <string> β€” the (private) master key to use with it πŸ—οΈ

Optional parameters:

  • --hint <string> β€” a password hint. Be nice to future you πŸ’œ
  • --kdf none|scrypt|pbkdf2 (default=scrypt) β€” which key derivation function to use for password-protected encryption keys 🧚

πŸŽ€ proxmox-backup-client key paperkey [<path>] [OPTIONS]

Not me being obsessed with this one β€” it generates a printable, human readable text file containing the encryption key πŸ“„πŸ’–

And it also includes a scanable QR code for fast key restore, which is genuinely iconic for disaster recovery πŸ¦‹ (yes, scanable, that's the manpage's spelling, we respect it)

  • <path> (string) β€” the key file. If you don't give one, the default key's will be used πŸ—‚οΈ

Optional parameters:

  • --output-format text|html β€” paperkey output format ✨
  • --subject <string> β€” include the specified subject as title text 🏷️

πŸ’… proxmox-backup-client key show [<path>] [OPTIONS]

Prints the encryption key's metadata β€” like, just the vibes, not the whole key πŸ”

  • <path> (string) β€” key file. No path? Then the default key's metadata will be shown 🌸

Optional parameters:

  • --output-format text|json|json-pretty β€” output format πŸŽ€

🌈 proxmox-backup-client key show-master-pubkey [<path>] [OPTIONS]

Lists info about the master key πŸ”‘

  • <path> (string) β€” path to the PEM formatted RSA public key. If you don't specify it, the default location will be used πŸ“

Optional parameters:

  • --output-format text|json|json-pretty β€” output format ✨

πŸ¦‹ proxmox-backup-client list [OPTIONS]

List backup groups. That's it, that's the whole thing πŸ’…

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --ns <string> β€” namespace πŸ“¦
  • --output-format text|json|json-pretty β€” output format πŸŽ€
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

⭐ proxmox-backup-client login [OPTIONS]

Try to login. If it works, it stores the ticket 🎟️ slay

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸ™ˆ proxmox-backup-client logout [OPTIONS]

Logout. Translation: delete the stored ticket πŸ’€ bye bestie

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸ”₯ proxmox-backup-client map <snapshot> <archive-name> [OPTIONS]

Maps a drive image from a VM backup onto a local loopback device πŸŒ€ use unmap to undo it, iykyk

⚠️ WARNING: Only do this with trusted backups! Not me begging you to be careful, but like, I'm begging you to be careful 😭
  • <snapshot> (string) β€” group/snapshot path πŸ“Έ
  • <archive-name> (string) β€” backup archive name πŸ—ƒοΈ

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --keyfile <string> β€” path to encryption key πŸ”‘
  • --ns <string> β€” namespace πŸ“¦
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️
  • --verbose <boolean> (default=false) β€” verbose output and stay in foreground πŸ‘€

🌸 proxmox-backup-client mount <snapshot> <archive-name> <target> [OPTIONS]

Mount a pxar archive πŸ—‚οΈβœ¨

  • <snapshot> (string) β€” group/snapshot path πŸ“Έ
  • <archive-name> (string) β€” backup archive name πŸ—ƒοΈ
  • <target> (string) β€” target directory path πŸ“

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --keyfile <string> β€” path to encryption key πŸ”‘
  • --ns <string> β€” namespace πŸ“¦
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️
  • --verbose <boolean> (default=false) β€” verbose output and stay in foreground πŸ‘€

🧚 proxmox-backup-client namespace create [<ns>] [OPTIONS]

Creates a shiny new namespace βœ¨πŸ“¦

  • <ns> (string) β€” namespace πŸ“¦

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸ’€ proxmox-backup-client namespace delete [<ns>] [OPTIONS]

Deletes an existing namespace. This is the main character energy of irreversible, so read the flags 😭

  • <ns> (string) β€” namespace πŸ“¦

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --delete-groups <boolean> β€” destroys all groups in the hierarchy πŸ’€ like, all of them, bestie
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸŽ€ proxmox-backup-client namespace list [<ns>] [OPTIONS]

Lists the namespaces in a repository πŸ“‹πŸ¦‹

  • <ns> (string) β€” namespace πŸ“¦

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --max-depth <integer> (0 - N) β€” maximum recursion depth πŸŒ€
  • --output-format text|json|json-pretty β€” output format ✨
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸŒ€ proxmox-backup-client namespace move [<ns>] --target-ns <string> [OPTIONS]

Moves a backup namespace to a new location within the same datastore πŸššπŸ“¦

  • <ns> (string) β€” namespace πŸ“¦
  • --target-ns <string> β€” namespace 🎯

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --delete-source <boolean> (default=true) β€” remove the source namespace after moving all contents. Defaults to true 🧹
  • --max-depth <integer> (0 - 7) (default=7) β€” how many levels of namespaces should be operated on (0 == no recursion) πŸͺ†
  • --merge-groups <boolean> (default=true) β€” if a group with the same name already exists in the target namespace, merge snapshots into it. Requires matching ownership and non-overlapping snapshot times ⚠️ don't skip that part
  • --output-format text|json|json-pretty β€” output format ✨
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸ“ proxmox-backup-client prune <group> [OPTIONS]

Prunes a backup repository βœ‚οΈπŸ”₯ this is the "keep only what sparks joy" command

  • <group> (string) β€” backup group πŸ‘―

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --datastore <string> β€” datastore name πŸ—„οΈ
  • --dry-run <boolean> β€” just show what prune would do, but do not delete anything. Lowkey the self-care flag πŸ§˜β€β™€οΈ
  • --keep-daily <integer> (1 - N) β€” number of daily backups to keep 🌞
  • --keep-hourly <integer> (1 - N) β€” number of hourly backups to keep ⏰
  • --keep-last <integer> (1 - N) β€” number of backups to keep 🫢
  • --keep-monthly <integer> (1 - N) β€” number of monthly backups to keep πŸ—“οΈ
  • --keep-weekly <integer> (1 - N) β€” number of weekly backups to keep πŸ“†
  • --keep-yearly <integer> (1 - N) β€” number of yearly backups to keep πŸŽ†
  • --max-depth <integer> (0 - 7) β€” how many levels of namespaces should be operated on (0 == no recursion, empty == automatic full recursion, namespace depths reduce maximum allowed value) πŸͺ†
  • --ns <string> β€” namespace πŸ“¦
  • --output-format text|json|json-pretty β€” output format ✨
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ
  • --quiet <boolean> (default=false) β€” minimal output, only show removals 🀫
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ”—
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️

πŸ’– proxmox-backup-client restore <snapshot> <archive-name> <target> [OPTIONS]

Restores a backup repository 🫢 the reverse-uno card of backups

  • <snapshot> (string) β€” group/snapshot path πŸ“Έ
  • <archive-name> (string) β€” backup archive name πŸ—ƒοΈ
  • <target> (string) β€” target directory path. Use '-' to write to standard output πŸ“€
Heads up bestie: we do not extract '.pxar' archives when writing to standard output πŸ™…β€β™€οΈ

Optional parameters:

  • --allow-existing-dirs <boolean> (default=false) β€” do not fail if directories already exists πŸ—‚οΈ
  • --auth-id <string> β€” authentication ID πŸͺͺ
  • --burst <string> β€” size of the token bucket (for Token bucket filter) in bytes with optional unit (B, KB (base 10), MB, GB, ..., KiB (base 2), MiB, Gib, ...) πŸͺ£
  • --crypt-mode none|encrypt|sign-only (default=encrypt) β€” the vibe check for your data πŸ”: encrypt means it's encrypted with an AEAD cipher, sign-only means it's just signed, and none means neither. Choose wisely bestie.
  • --datastore <string> β€” the datastore name πŸ’Ύ.
  • --ignore-acls <boolean> (default=false) β€” literally just ignore acl settings, no thoughts head empty πŸ™ˆ.
  • --ignore-extract-device-errors <boolean> (default=false) β€” ignore errors that happen while extracting device nodes 🫢.
  • --ignore-ownership <boolean> (default=false) β€” ignore owner settings, i.e. no chown πŸ‘‘.
  • --ignore-permissions <boolean> (default=false) β€” ignore permission settings, i.e. no chmod πŸ”’.
  • --ignore-xattrs <boolean> (default=false) β€” ignore xattr settings ✨.
  • --keyfd <integer> (0 - N) β€” hand over an encryption key through an already opened file descriptor πŸ—οΈ.
  • --keyfile <string> β€” path to the encryption key; all data gets encrypted using this key πŸ’–.
  • --ns <string> β€” namespace 🌸.
  • --overwrite <boolean> (default=false) β€” overwrite files that already exist 😀.
  • --overwrite-files <boolean> (default=false) β€” same energy: overwrite already existing files πŸ”₯.
  • --overwrite-hardlinks <boolean> (default=false) β€” overwrite already existing entries with the archive's hardlink ⛓️.
  • --overwrite-symlinks <boolean> (default=false) β€” overwrite already existing entries with the archive's symlink πŸͺ’.
  • --pattern <string> β€” a path or match pattern to limit which files get restored; you can pass it more than once 🎯.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --prelude-target <string> β€” path to restore the prelude to (pxar v2 archives only, so don't come for me if it's not that) 🧚.
  • --rate <string> β€” rate limit (for a Token bucket filter) in bytes/s, with an optional unit: B, KB (base 10), MB, GB, ..., KiB (base 2), MiB, Gib, ... πŸƒβ€β™€οΈπŸ’¨.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ›°οΈ proxmox-backup-client server-identity

proxmox-backup-client server-identity [OPTIONS]

Returns the server identity info for this Proxmox Backup Server β€” like sliding into its DMs and asking who it is πŸ’Œ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ“‚ proxmox-backup-client snapshot files

proxmox-backup-client snapshot files <snapshot> [OPTIONS]

List the files inside a snapshot β€” literally snooping through the archives, but make it authorized πŸ•΅οΈβ€β™€οΈ.

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ’€ proxmox-backup-client snapshot forget

proxmox-backup-client snapshot forget <snapshot> [OPTIONS]

Forget (remove) backup snapshots. It's giving "we are never ever getting back together" 🎢 β€” except the snapshot's actually gone.

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ“œ proxmox-backup-client snapshot list

proxmox-backup-client snapshot list [<group>] [OPTIONS]

List your backup snapshots β€” the full camera roll, no filters πŸ“±βœ¨.

<group> (<string>) β€” backup group πŸ‘―β€β™€οΈ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ“ proxmox-backup-client snapshot notes show

proxmox-backup-client snapshot notes show <snapshot> [OPTIONS]

Show notes πŸ“– β€” the little diary entry attached to a snapshot.

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

✏️ proxmox-backup-client snapshot notes update

proxmox-backup-client snapshot notes update <snapshot> <notes> [OPTIONS]

Update Notes β€” rewriting history, but the cute, sanctioned kind πŸŽ€.

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

<notes> (<string>) β€” the Notes πŸ“.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ›‘οΈ proxmox-backup-client snapshot protected show

proxmox-backup-client snapshot protected show <snapshot> [OPTIONS]

Show the protection status of the specified snapshot β€” is it guarded or is it free-range? πŸ‘€

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ” proxmox-backup-client snapshot protected update

proxmox-backup-client snapshot protected update <snapshot> <protected> [OPTIONS]

Update the protection status of a snapshot β€” toggling the do-not-touch shield πŸ›‘οΈβœ¨.

<snapshot> (<string>) β€” snapshot path πŸ“Έ.

<protected> (<boolean>) β€” the protection status 🚦.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --ns <string> β€” namespace 🌸.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ“€ proxmox-backup-client snapshot upload-log

proxmox-backup-client snapshot upload-log <snapshot> <logfile> [OPTIONS]

Upload a backup log file β€” receipts, but make them permanent πŸ§ΎπŸ’….

<snapshot> (<string>) β€” Group/Snapshot path πŸ—ƒοΈ.

<logfile> (<string>) β€” the path to the log file you want to upload πŸ“„.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --crypt-mode none|encrypt|sign-only (default=encrypt) β€” defines whether data is encrypted (using an AEAD cipher), only signed, or neither πŸ”.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --keyfd <integer> (0 - N) β€” pass an encryption key via an already opened file descriptor πŸ—οΈ.
  • --keyfile <string> β€” path to the encryption key; all data will be encrypted using this key πŸ’–.
  • --ns <string> β€” namespace 🌸.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ“Š proxmox-backup-client status

proxmox-backup-client status [OPTIONS]

Get the repository status β€” the "how are we doing bestie" check-in πŸ’β€β™€οΈ.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ—’οΈ proxmox-backup-client task list

proxmox-backup-client task list [OPTIONS]

List the running server tasks for this repo user β€” the group chat of things currently happening πŸ”„.

Optional parameters:

  • --all <boolean> β€” also list stopped tasks, because the past matters too πŸ’€.
  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --limit <integer> (1 - 1000) (default=50) β€” the maximal number of tasks to list πŸ”’.
  • --output-format text|json|json-pretty β€” output format πŸ“„.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

🧾 proxmox-backup-client task log

proxmox-backup-client task log <upid> [OPTIONS]

Display the task log β€” the full storytime for one task πŸ“–βœ¨.

<upid> (<string>) β€” Unique Process/Task Identifier πŸ†”.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007 πŸ”Œ.
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore πŸ—‚οΈ.
  • --server <string> β€” backup server address (hostname or IP). Default: localhost πŸ–₯️.

πŸ›‘ proxmox-backup-client task stop

proxmox-backup-client task stop <upid> [OPTIONS]

Try to stop a specific task β€” "you're done, bestie, wrap it up" βœ‹.

<upid> (<string>) β€” Unique Process/Task Identifier πŸ†”.

Optional parameters:

  • --auth-id <string> β€” authentication ID πŸͺͺ.
  • --datastore <string> β€” datastore name πŸ’Ύ.
  • --port <integer> (1 - 65535) (default=8007) β€” the port your backup server is listening on. Default? 8007, bestie, don't forget it πŸ’…
  • --repository <string> β€” the repository URL, and the shape is exactly this: [[auth-id@]server[:port]:]datastore
  • --server <string> β€” where the backup server lives (hostname or IP). Default: localhost 🏠

πŸŒ€ proxmox-backup-client unmap [<name>]

Unmaps a loop device that was mapped with map, and releases all its resources. Cleanup era ✨

<name> (<string>) β€” the archive name, a path to the loopdev (/dev/loopX), or just the loop device number. Omit it entirely and you get a list of all current mappings, plus a forced cleanup of any leftover instances 🧹


🌈 proxmox-backup-client version [OPTIONS]

Shows the client version, and the server version too if you want it πŸ‘‘

Optional parameters, incoming:

  • --auth-id <string> β€” authentication ID
  • --datastore <string> β€” datastore name
  • --output-format text|json|json-pretty β€” output format
  • --port <integer> (1 - 65535) (default=8007) β€” backup server port. Default: 8007
  • --repository <string> β€” repository URL: [[auth-id@]server[:port]:]datastore
  • --server <string> β€” backup server address (hostname or IP). Default: localhost

🐚 CATALOG SHELL COMMANDS 🐚

okay so these ones are only available once you start up the interactive restore shell, like so:

proxmox-backup-client shell <snapshot> <name.pxar>

cd [<path>]

Changes the current working directory to a new directory πŸ“

<path> (<string>) β€” target path


clear-selected

Clears the whole list of files you selected for restore. yeet, but for selections 🫧


deselect <path>

Deselects an entry for restore.

Heads up: you'll get an error back if that entry isn't actually in the list of entries selected for restore πŸ™ˆ

<path> (<string>) β€” path to the entry you want removed from the list


exit

Exits the shell. bye bestie πŸ‘‹


find <pattern> [OPTIONS]

Finds entries in the catalog that match your match pattern πŸ”

<pattern> (<string>) β€” path or match pattern for matching filenames

Optional parameters:

  • --select <boolean> (default=false) β€” adds the matching filenames to the list for restore

help [{<command>}] [OPTIONS]

Gets help about a specified command (or sub-command) 🫢

<command> (<string>) β€” the command. This can be a list, so you can specify nested sub-commands. And yes, you can pass it more than once.

Optional parameters:

  • --verbose <boolean> β€” verbose help

list-selected [OPTIONS]

Lists the entries you currently have selected for restore πŸ“‹

Optional parameters:

  • --patterns <boolean> (default=false) β€” list the match patterns instead of the matching files

ls [<path>]

Lists the content of the working directory, or of the path you give it πŸ‘€

<path> (<string>) β€” target path


pwd

Lists the current working directory. classic, iconic, never misses πŸ’…


restore <target> [OPTIONS]

Restores the sub-archive given by the current working directory into target.

And if you also hand it a pattern, the restore gets limited to a narrower subset of that sub-archive. No pattern, or an empty one? Then the full archive goes to target 🎯

<target> (<string>) β€” target path for restore on the local filesystem

Optional parameters:

  • --pattern <string> β€” path or match pattern for matching filenames

restore-selected <target>

Restores the selected entries to the given target path.

important: the target must not exist on the client's filesystem. Like, at all. It's giving "fresh start only" 😀

<target> (<string>) β€” target path for restore on the local filesystem


select <path>

Selects an entry for restore βœ…

Heads up: this returns an error if the entry is already in the list, or if you handed it an invalid path.

<path> (<string>) β€” target path


stat <path>

Reads the metadata for a given directory entry πŸ•΅οΈ

lowkey a warning: this one is expensive, because the data has to be read from the pxar archive, which means reading over the network. so don't spam it fr fr 😭

<path> (<string>) β€” target path


✨ COMMON OPTIONS ✨

Most commands that produce output support the --output-format parameter. It accepts these values, slay:

  • text β€” text format (default). Structured data is rendered as a table.
  • json β€” JSON (single line).
  • json-pretty β€” JSON (multiple lines, nicely formatted).

Also, these environment variables can modify output behavior πŸŽ€

  • PROXMOX_OUTPUT_FORMAT β€” defines the default output format.
  • PROXMOX_OUTPUT_NO_BORDER β€” if set (to any value), table borders are not rendered.
  • PROXMOX_OUTPUT_NO_HEADER β€” if set (to any value), table headers are not rendered.
Note: the text format is designed to be human readable, and it is not meant to be parsed by automation tools. So if you need to process the output, please use the json format πŸ’€ (/gen)

πŸ’– DESCRIPTION πŸ’–

This tool implements a backup server client β€” meaning it can connect to backup servers to issue management commands, and to create or restore backups. that's the whole vibe πŸ¦‹


Copyright (C) 2019-2025, Proxmox Server Solutions GmbH

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>

Author

Proxmox Support Team 🫢

2019-2025, Proxmox Server Solutions GmbH


and that's a wrap on PROXMOX-BACKUP-CLIENT(1) bestie!! πŸŽ€ this page is version 4.2.0, dated Tuesday, 01 January 1980 (yes the date is silly, we love her for it 😭), and it lives in section 1 of the manual. go forth and back things up, you absolute icon πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from