From 4e695e2594770c9ebb83de536ee1353218eaaf4d Mon Sep 17 00:00:00 2001 From: damage Date: Tue, 31 Mar 2026 21:42:50 +0200 Subject: [PATCH] script to query pbs backup json --- app/proxmox_backup_server/pbs.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 app/proxmox_backup_server/pbs.sh diff --git a/app/proxmox_backup_server/pbs.sh b/app/proxmox_backup_server/pbs.sh new file mode 100755 index 0000000..ea6ca43 --- /dev/null +++ b/app/proxmox_backup_server/pbs.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +HOST="${1}" +PORT="${2}" +TOKENID="${3}@${4}!${5}" +TOKENSECRET="${6}" + +datastores=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore") + +IFS=' +' +for datastore in $(echo "${datastores}" |jq --raw-output '.data[].store'); do + namespaces=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore/${datastore}/namespace") + + ret_namespaces="" + for namespace in $(echo "${namespaces}" |jq --raw-output '.data[].ns'); do + backups=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore/${datastore}/snapshots?ns=${namespace}") + backups_json=$(echo "${backups}" |jq '.data') + ret_namespaces="${ret_namespaces}{\"${namespace}\":{\"backups\":${backups_json}}}," + done + ret_datastores="${ret_datastores}{\"${datastore}\":{\"namespaces\":[${ret_namespaces::-1}]}}," +done + +ret="{\"datastores\":[${ret_datastores::-1}]}" + +echo $ret