proxmox-tape(1)

PROXMOX-TAPE(1) Proxmox Backup PROXMOX-TAPE(1)

NAME

proxmox-tape - Proxmox Tape Backup CLI Tool

SYNOPSIS

proxmox-tape backup <store> <pool> [OPTIONS]

Backup datastore to tape media pool

<store>
<string> Datastore name.
<pool>
<string> Media pool name.

Optional parameters:

--drive <string>
Drive Identifier.
--eject-media <boolean>
Eject media upon job completion.
--export-media-set <boolean>
Export media set upon job completion.
--force-media-set <boolean> (default=false)
Ignore the allocation policy and start a new media-set.
--groups [<exclude:|include:>]<type:<vm|ct|host>|group:GROUP|regex:RE>
List of group filters. Can be specified more than once.
--latest-only <boolean>
Backup latest snapshots only.
--max-depth <integer> (0 - 7) (default=7)
How many levels of namespaces should be operated on (0 == no recursion)
--notify-user <string>
User ID
--ns <string>
Namespace.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape backup-job create <id> --drive <string> --pool <string> --store <string> [OPTIONS]

Create a new tape backup job.

<id>
<string> Job ID.
--drive <string>
Drive Identifier.
--pool <string>
Media pool name.
--store <string>
Datastore name.

Optional parameters:

--comment <string>
Comment.
--eject-media <boolean>
Eject media upon job completion.
--export-media-set <boolean>
Export media set upon job completion.
--group-filter [<exclude:|include:>]<type:<vm|ct|host>|group:GROUP|regex:RE>
List of group filters. Can be specified more than once.
--latest-only <boolean>
Backup latest snapshots only.
--max-depth <integer> (0 - 7) (default=7)
How many levels of namespaces should be operated on (0 == no recursion)
--notification-mode legacy-sendmail|notification-system (default=notification-system)
Configure how notifications for this datastore should be sent. legacy- sendmail sends email notifications to the user configured in notify-user via the system's sendmail executable. notification-system emits matchable notification events to the notification system.
--notify-user <string>
User ID
--ns <string>
Namespace.
--schedule <calendar-event>
Run sync job at specified schedule.
--worker-threads <integer> (1 - 32) (default=1)
The number of threads to use for the tape backup job.


----



proxmox-tape backup-job list [OPTIONS]

Tape backup job list.

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape backup-job remove <id> [OPTIONS]

Remove a tape backup job configuration

<id>
<string> Job ID.

Optional parameters:

--digest <string>
Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.


----



proxmox-tape backup-job run <id>

Run THape Backup Job

<id>
<string> Job ID.


----



proxmox-tape backup-job show <id> [OPTIONS]

Show tape backup job configuration

<id>
<string> Job ID.

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape backup-job update <id> [OPTIONS]

Update the tape backup job

<id>
<string> Job ID.

Optional parameters:

--comment <string>
Comment.
--delete comment|schedule|eject-media|export-media-set|latest-only|notify-user|notification-mode|group-filter|max-depth|ns|worker-threads
List of properties to delete. Can be specified more than once.
--digest <string>
Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.
--drive <string>
Drive Identifier.
--eject-media <boolean>
Eject media upon job completion.
--export-media-set <boolean>
Export media set upon job completion.
--group-filter [<exclude:|include:>]<type:<vm|ct|host>|group:GROUP|regex:RE>
List of group filters. Can be specified more than once.
--latest-only <boolean>
Backup latest snapshots only.
--max-depth <integer> (0 - 7) (default=7)
How many levels of namespaces should be operated on (0 == no recursion)
--notification-mode legacy-sendmail|notification-system (default=notification-system)
Configure how notifications for this datastore should be sent. legacy- sendmail sends email notifications to the user configured in notify-user via the system's sendmail executable. notification-system emits matchable notification events to the notification system.
--notify-user <string>
User ID
--ns <string>
Namespace.
--pool <string>
Media pool name.
--schedule <calendar-event>
Run sync job at specified schedule.
--store <string>
Datastore name.
--worker-threads <integer> (1 - 32) (default=1)
The number of threads to use for the tape backup job.


----



proxmox-tape barcode-label [OPTIONS]

Label media with barcodes from changer device

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.
--pool <string>
Media pool name.


----



proxmox-tape cartridge-memory [OPTIONS]

Read Cartridge Memory (Medium auxiliary memory attributes)

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape catalog [OPTIONS]

Scan media and record content

Optional parameters:

--drive <string>
Drive Identifier.
--force <boolean>
Force overriding existing index.
--output-format text|json|json-pretty
Output format.
--scan <boolean>
Re-read the whole tape to reconstruct the catalog instead of restoring saved versions.
--verbose <boolean>
Verbose mode - log all found chunks.


----



proxmox-tape changer config <name> [OPTIONS]

Get tape changer configuration

<name>
<string> Tape Changer Identifier.

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape changer create <name> --path <string> [OPTIONS]

Create a new changer device

<name>
<string> Tape Changer Identifier.
--path <string>
Path to Linux generic SCSI device (e.g. '/dev/sg4')

Optional parameters:

--eject-before-unload <boolean> (default=false)
if set to true, tapes are ejected manually before unloading
--export-slots [<integer>, ...]
A list of slot numbers, comma separated. Those slots are reserved for Import/ Export, i.e. any media in those slots are considered to be 'offline'.


----



proxmox-tape changer list [OPTIONS]

List changers

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape changer remove <name>

Delete a tape changer configuration

<name>
<string> Tape Changer Identifier.


----



proxmox-tape changer scan [OPTIONS]

Scan for SCSI tape changers

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape changer status [<name>] [OPTIONS]

Get tape changer status

<name>
<string> Tape Changer Identifier.

Optional parameters:

--cache <boolean> (default=true)
Use cached value.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape changer transfer [<name>] --from <integer> (1 - N) --to <integer> (1 - N)

Transfers media from one slot to another

<name>
<string> Tape Changer Identifier.
--from <integer> (1 - N)
Source slot number
--to <integer> (1 - N)
Destination slot number


----



proxmox-tape changer update <name> [OPTIONS]

Update a tape changer configuration

<name>
<string> Tape Changer Identifier.

Optional parameters:

--delete export-slots|eject-before-unload
List of properties to delete. Can be specified more than once.
--digest <string>
Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.
--eject-before-unload <boolean> (default=false)
if set to true, tapes are ejected manually before unloading
--export-slots [<integer>, ...]
A list of slot numbers, comma separated. Those slots are reserved for Import/ Export, i.e. any media in those slots are considered to be 'offline'.
--path <string>
Path to Linux generic SCSI device (e.g. '/dev/sg4')


----



proxmox-tape clean [OPTIONS]

Clean drive

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape drive config <name> [OPTIONS]

Get pool configuration

<name>
<string> Drive Identifier.

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape drive create <name> --path <string> [OPTIONS]

Create a new drive

<name>
<string> Drive Identifier.
--path <string>
The path to a LTO SCSI-generic tape device (i.e. '/dev/sg0')

Optional parameters:

--changer <string>
Tape Changer Identifier.
--changer-drivenum <integer> (0 - 255) (default=0)
Associated changer drive number (requires option changer)


----



proxmox-tape drive list [OPTIONS]

List drives

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape drive remove <name>

Delete a drive configuration

<name>
<string> Drive Identifier.


----



proxmox-tape drive scan [OPTIONS]

Scan for drives

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape drive update <name> [OPTIONS]

Update a drive configuration

<name>
<string> Drive Identifier.

Optional parameters:

--changer <string>
Tape Changer Identifier.
--changer-drivenum <integer> (0 - 255) (default=0)
Associated changer drive number (requires option changer)
--delete changer|changer-drivenum
List of properties to delete. Can be specified more than once.
--digest <string>
Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.
--path <string>
The path to a LTO SCSI-generic tape device (i.e. '/dev/sg0')


----



proxmox-tape eject [OPTIONS]

Eject/Unload drive media

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape eod [OPTIONS]

Move to end of media (MTEOM, used to debug)

Optional parameters:

--drive <string>
Drive Identifier.


----



proxmox-tape export-media <label-text> [OPTIONS]

Export media with specified label

<label-text>
<string> Media Label/Barcode.

Optional parameters:

--drive <string>
Drive Identifier.


----



proxmox-tape format [OPTIONS]

Format media

Optional parameters:

--drive <string>
Drive Identifier.
--fast <boolean> (default=true)
Use fast erase.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape 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.


----



proxmox-tape inventory [OPTIONS]

List (and update) media labels (Changer Inventory)

Optional parameters:

--catalog <boolean> (default=false)
Try to restore catalogs from tapes.
--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.
--read-all-labels <boolean> (default=false)
Load all tapes and try read labels (even if already inventoried)
--read-labels <boolean> (default=false)
Load unknown tapes and try read labels


----



proxmox-tape key change-passphrase <fingerprint> --hint <string> [OPTIONS]

Change the encryption key's password.

<fingerprint>
<string> Tape encryption key fingerprint (sha256).
--hint <string>
Password hint.

Optional parameters:

--force <boolean> (default=false)
Reset the passphrase for a tape key, without asking for the old one.
--kdf none|scrypt|pbkdf2 (default=scrypt)
Key derivation function for password protected encryption keys.


----



proxmox-tape key create --hint <string> [OPTIONS]

Create key (read password from stdin)

--hint <string>
Password restore hint.

Optional parameters:

--kdf none|scrypt|pbkdf2 (default=scrypt)
Key derivation function for password protected encryption keys.


----



proxmox-tape key list [OPTIONS]

List keys

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape key paperkey <fingerprint> [OPTIONS]

Generate a printable, human readable text file containing the encryption key.

This also includes a scanable QR code for fast key restore.

<fingerprint>
<string> Tape encryption key fingerprint (sha256).

Optional parameters:

--output-format text|html
Paperkey output format
--subject <string>
Include the specified subject as title text.


----



proxmox-tape key remove <fingerprint> [OPTIONS]

Remove a encryption key from the database

Please note that you can no longer access tapes using this key.

<fingerprint>
<string> Tape encryption key fingerprint (sha256).

Optional parameters:

--digest <string>
Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.


----



proxmox-tape key restore [OPTIONS]

Restore encryption key from tape or from a backup file/string (reads password from stdin)

Optional parameters:

--drive <string>
Drive Identifier.
--key <string>
Import key from json string or an exported paperkey-format.
--key-file <string>
Import key from a file with either json or exported paperkey-format.


----



proxmox-tape key show <fingerprint> [OPTIONS]

Print the encryption key's metadata.

<fingerprint>
<string> Tape encryption key fingerprint (sha256).

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape label --label-text <string> [OPTIONS]

Label media

--label-text <string>
Media Label/Barcode.

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.
--pool <string>
Media pool name.


----



proxmox-tape load-media <label-text> [OPTIONS]

Load media with specified label

<label-text>
<string> Media Label/Barcode.

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape load-media-from-slot <source-slot> [OPTIONS]

Load media from the specified slot

<source-slot>
<integer> (1 - N) Source slot number.

Optional parameters:

--drive <string>
Drive Identifier.


----



proxmox-tape media content [OPTIONS]

List media content

Optional parameters:

--backup-id <string>
Backup ID.
--backup-type vm|ct|host
Backup types.
--label-text <string>
Media Label/Barcode.
--media <string>
Media Uuid.
--media-set <string>
MediaSet Uuid (We use the all-zero Uuid to reserve an empty media for a specific pool).
--output-format text|json|json-pretty
Output format.
--pool <string>
Media pool name.


----



proxmox-tape media destroy [<label-text>] [OPTIONS]

Destroy media (completely remove from database)

<label-text>
<string> Media Label/Barcode.

Optional parameters:

--force <boolean>
Force removal (even if media is used in a media set).
--uuid <string>
Media Uuid.


----



proxmox-tape media list [OPTIONS]

List pool media

Optional parameters:

--output-format text|json|json-pretty
Output format.
--pool <string>
Media pool name.
--update-status <boolean> (default=true)
Try to update tape library status (check what tapes are online).
--update-status-changer <string>
Tape Changer Identifier.


----



proxmox-tape pool config <name> [OPTIONS]

Get media pool configuration

<name>
<string> Media pool name.

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape pool create <name> [OPTIONS]

Create a new media pool

<name>
<string> Media pool name.

Optional parameters:

--allocation <string>
Media set allocation policy ('continue', 'always', or a calendar event).
--comment <string>
Comment.
--encrypt <string>
Tape encryption key fingerprint (sha256).
--retention <string>
Media retention policy ('overwrite', 'keep', or time span).
--template <string>
Media set naming template (may contain strftime() time format specifications).


----



proxmox-tape pool list [OPTIONS]

List media pool

Optional parameters:

--output-format text|json|json-pretty
Output format.


----



proxmox-tape pool remove <name>

Delete a media pool configuration

<name>
<string> Media pool name.


----



proxmox-tape pool update <name> [OPTIONS]

Update media pool settings

<name>
<string> Media pool name.

Optional parameters:

--allocation <string>
Media set allocation policy ('continue', 'always', or a calendar event).
--comment <string>
Comment.
--delete allocation|retention|template|encrypt|comment
List of properties to delete. Can be specified more than once.
--encrypt <string>
Tape encryption key fingerprint (sha256).
--retention <string>
Media retention policy ('overwrite', 'keep', or time span).
--template <string>
Media set naming template (may contain strftime() time format specifications).


----



proxmox-tape read-label [OPTIONS]

Read media label

Optional parameters:

--drive <string>
Drive Identifier.
--inventorize <boolean>
Inventorize media
--output-format text|json|json-pretty
Output format.


----



proxmox-tape restore <media-set> <store> [{<snapshots>}] [OPTIONS]

Restore data from media-set

<media-set>
<string> Media set UUID.
<store>
[(<source>=)?<target>, ...] A list of Datastore mappings (or single datastore), comma separated. For example 'a=b,e' maps the source datastore 'a' to target 'b and all other sources to the default 'e'. If no default is given, only the specified sources are mapped.
<snapshots>
store:[ns/namespace/...]type/id/time List of snapshots. Can be specified more than once.

Optional parameters:

--drive <string>
Drive Identifier.
--namespaces [store=<string> [,max-depth=<integer>] [,source=<string>] [,target=<string>]]
List of namespace to restore. Can be specified more than once.
--notify-user <string>
User ID
--output-format text|json|json-pretty
Output format.
--owner <string>
Authentication ID


----



proxmox-tape rewind [OPTIONS]

Rewind tape

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape scan [OPTIONS]

Rewind, then read media contents and print debug info

Note: This reads unless the driver returns an IO Error, so this method is expected to fails when we reach EOT.

Optional parameters:

--drive <string>
Drive Identifier.


----



proxmox-tape status [OPTIONS]

Get drive/media status

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.


----



proxmox-tape unload [OPTIONS]

Unload media via changer

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.
--target-slot <integer> (1 - N)
Target slot number. If omitted, defaults to the slot that the drive was loaded from.


----



proxmox-tape volume-statistics [OPTIONS]

Read Volume Statistics (SCSI log page 17h)

Optional parameters:

--drive <string>
Drive Identifier.
--output-format text|json|json-pretty
Output format.

DESCRIPTION

This tool can configure and manage tape backups.

COPYRIGHT AND DISCLAIMER

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

COPYRIGHT

2019-2026, Proxmox Server Solutions GmbH

Wednesday, 06 May 2026 <devbuild>