Files
felhom.eu/documentation/audits/os-updates-spike-2026-10-04/scripts/g-state.sh
T

16 lines
1.6 KiB
Bash

#!/bin/bash
# g-state.sh <tag> — READ-ONLY state of guest 9202 for Part G (run on demo-hp as root).
export LC_ALL=C
echo "### state $1 $(date -u +%FT%TZ)"
pct exec 9202 -- docker ps -a --format '{{.Names}}|{{.Status}}' | sort
echo "-- container StartedAt / health"
for c in $(pct exec 9202 -- docker ps -aq); do pct exec 9202 -- docker inspect -f '{{.Name}} started={{.State.StartedAt}} health={{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}} restarts={{.RestartCount}}' $c; done | sort
echo "-- dockerd/containerd"; pct exec 9202 -- systemctl show -p MainPID -p ActiveEnterTimestamp docker containerd | paste -sd' '
pct exec 9202 -- docker version --format 'docker server {{.Server.Version}}' 2>/dev/null
echo "-- services (MainPID) "; pct exec 9202 -- bash -c 'for u in $(systemctl list-units --type=service --state=running --no-legend --plain | awk "{print \$1}"); do echo "$u $(systemctl show -p MainPID --value $u)"; done' | sort > /root/g-svc-$1.txt; wc -l < /root/g-svc-$1.txt
echo "-- processes mapping deleted files (need a restart)"
pct exec 9202 -- bash -c 'for p in /proc/[0-9]*; do if grep -qE "\(deleted\)" $p/maps 2>/dev/null; then echo "$(cat $p/comm 2>/dev/null) $(basename $p)"; fi; done | sort | uniq -c | sort -rn | head -30'
echo "-- disk"; pct exec 9202 -- df -B1 --output=used / | tail -1 | sed 's/^/rootfs_used_bytes /'
pct exec 9202 -- dpkg-query -W -f='${Package} ${Version}\n' > /root/g-dpkg-$1.txt; wc -l < /root/g-dpkg-$1.txt
echo "-- controller health via its own healthcheck"; pct exec 9202 -- docker inspect -f '{{.State.Health.Status}}' felhom-controller