27 lines
1.1 KiB
Bash
27 lines
1.1 KiB
Bash
|
|
#!/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
|