mirror of
https://github.com/kneutron/ansitest.git
synced 2025-01-30 05:02:54 +08:00
added features parallel, ctr
This commit is contained in:
parent
f7c1d6336e
commit
26addc9b5a
79
proxmox/proxmox-list-vm-snapshots.sh
Normal file
79
proxmox/proxmox-list-vm-snapshots.sh
Normal file
@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 2024.Aug kneutron
|
||||
|
||||
# Feature - parallel process if # of VMs is > 15
|
||||
# Feature - now works with either VM / CTR VMID
|
||||
|
||||
# REQUIRES: parallel awk grep
|
||||
|
||||
# arg1 = vmid
|
||||
if [ "$1" = "" ]; then
|
||||
# list all;
|
||||
echo "$(date) - Listing all VM snapshots"
|
||||
# xxx TODO EDITME - change this if you favor CTR count over VMs
|
||||
# if [ $(pct list |wc -l) -gt 15 ]; then
|
||||
if [ $(qm list |wc -l) -gt 15 ]; then
|
||||
# DONE parallel to sep tmp files, sort and cat
|
||||
|
||||
# create list of VM IDs on thisnode
|
||||
tmpdir=/dev/shm
|
||||
vmlistf=$tmpdir/vmlist.infile
|
||||
ctrlistf=$tmpdir/ctrlist.infile
|
||||
|
||||
para=/usr/bin/parallel
|
||||
# REF: https://stackoverflow.com/questions/22187834/gnu-parallel-output-each-job-to-a-different-file
|
||||
[ -e $para ] || apt-get install -y parallel
|
||||
|
||||
# auto cleanup
|
||||
/bin/rm -f $tmpdir/proxmox-snaplist* "$vmlistf" "$ctrlistf"
|
||||
|
||||
# populate
|
||||
echo "$(date) - Getting list of VMs"
|
||||
qm list |grep -v VMID |awk '{print "qm listsnapshot "$1}' > "$vmlistf"
|
||||
|
||||
echo "$(date) - Getting list of CTRs"
|
||||
pct list |grep -v VMID |awk '{print "pct listsnapshot "$1}' > "$ctrlistf"
|
||||
|
||||
limitt=5
|
||||
cd $tmpdir
|
||||
|
||||
echo "$(date) - Processing VM list in parallel"
|
||||
time cat $vmlistf |$para -j $limitt --results proxmox-snaplist-{}.out
|
||||
date
|
||||
|
||||
echo "$(date) - Processing CTR list in parallel"
|
||||
time cat $ctrlistf |$para -j $limitt --results proxmox-snaplist-{}.out
|
||||
date
|
||||
|
||||
# show filename
|
||||
tail -n +1 proxmox-snaplist-pct*.out #|less
|
||||
tail -n +1 proxmox-snaplist-qm*.out #|less
|
||||
|
||||
else
|
||||
for vmid in $(pct list |grep -v VMID |awk '{print $1}'); do
|
||||
echo "$(date) === CTR VMID: $vmid"
|
||||
pct listsnapshot $vmid
|
||||
done
|
||||
for vmid in $(qm list |grep -v VMID |awk '{print $1}'); do
|
||||
echo "$(date) === VMID: $vmid"
|
||||
qm listsnapshot $vmid
|
||||
done
|
||||
fi
|
||||
else
|
||||
# we got passed an arg
|
||||
time qm listsnapshot $1 2>/dev/null || time pct listsnapshot $1
|
||||
fi
|
||||
|
||||
# PROTIP: pipe output to awk 'NF>0' to get rid of blank lines
|
||||
|
||||
exit;
|
||||
|
||||
# REF: https://phoenixnap.com/kb/proxmox-delete-vm#ftoc-heading-9
|
||||
# qm listsnapshot 126
|
||||
`-> b4-nic-change 2024-05-02 17:54:37 powered off!
|
||||
`-> current You are here!
|
||||
|
||||
# to delete snapshot:
|
||||
# qm delsnapshot [vmid] [snapshot_name]
|
||||
# pct delsnapshot <vmid> <snapname> [OPTIONS] # for CTR
|
Loading…
x
Reference in New Issue
Block a user