#!/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