I make a smal but Helpfull Script to get Snapshots from ceph.
Output is like this:
root@proxstore1:~# ./getsnap.sh
ID VM-Name Snapshot-Name
125 VMname6 snap1
126 VMname5 snap2
127 VMname3 snap3
128 VMname4 snap4
129 VMname2 snap5
130 VMname1 snap6
Bash:
#!/bin/bash
vmlist=$(pvesh get /cluster/resources --type vm --output-format json)
declare -A snapshots
vmcount=$(echo "${vmlist}" | jq '. | length')
for (( i = 0; i < ${vmcount}; i++ ))
do
vminfo=$(echo "${vmlist}" | jq ".[$i]")
vmid=$(echo "${vminfo}" | jq ".vmid")
vmname=$(echo "${vminfo}" | jq ".name" | sed 's/"//g')
snapshots["${vmid}"]="${vmname}"
done
printf "%4s %-20s %s\n" "ID" "VM-Name" "Snapshot-Name"
for stor in "CEPH-POOL1" "CEPH-POOL2"
do
snaplist=$(rbd ls -l "${stor}" | awk '{print $1}' | grep @ | grep -v base)
while read -r snap
do
vmid=$(echo "${snap}" | cut -d '-' -f 2)
vmname=${snapshots[${vmid}]}
snapname=$(echo "${snap}" | cut -d '@' -f 2)
printf "%4d %-20s %s\n" ${vmid} ${vmname} ${snapname}
done < <(echo "${snaplist}")
done
exit 0
Output is like this:
root@proxstore1:~# ./getsnap.sh
ID VM-Name Snapshot-Name
125 VMname6 snap1
126 VMname5 snap2
127 VMname3 snap3
128 VMname4 snap4
129 VMname2 snap5
130 VMname1 snap6
Last edited: