Files
homelab-docs/gather-container-info.sh

76 lines
2.2 KiB
Bash

#!/bin/bash
# Gather information about all undocumented containers on main-pve
echo "=== Container Information Gathering ==="
echo ""
# List of undocumented containers
CONTAINERS="103 105 108 109 113 114 115 200"
VM="110"
ssh root@10.0.10.3 << 'EOF'
echo "VMs:"
echo "===="
echo ""
# VM 110
echo "VM 110 (debian):"
qm config 110 | grep -E "^(cores|memory|net0|bootdisk):"
echo ""
echo "Containers:"
echo "==========="
echo ""
for CT in 103 105 108 109 113 114 115 200; do
echo "CT $CT:"
# Get container name
NAME=$(pct config $CT | grep "^hostname:" | awk '{print $2}')
echo " Name: $NAME"
# Get IP address
IP=$(pct config $CT | grep "^net0:" | grep -oP 'ip=\K[^,]+' || echo "DHCP")
echo " IP: $IP"
# Get resources
CORES=$(pct config $CT | grep "^cores:" | awk '{print $2}')
MEM=$(pct config $CT | grep "^memory:" | awk '{print $2}')
echo " Resources: ${CORES} cores, ${MEM}MB RAM"
# Check if running
STATUS=$(pct status $CT | awk '{print $2}')
echo " Status: $STATUS"
# Try to get running processes if container is running
if [ "$STATUS" = "running" ]; then
echo " Top processes:"
pct exec $CT -- ps aux --sort=-%mem | head -6 | tail -5 | awk '{printf " - %s (PID %s, MEM %s%%)\n", $11, $2, $4}'
# Check for Docker
if pct exec $CT -- which docker >/dev/null 2>&1; then
echo " Docker containers:"
pct exec $CT -- docker ps --format " - {{.Names}} ({{.Image}})" 2>/dev/null || echo " (Docker installed but no containers)"
fi
# Check listening ports
echo " Listening ports:"
pct exec $CT -- ss -tlnp 2>/dev/null | grep LISTEN | awk '{print " - " $4}' | head -5
fi
echo ""
done
echo ""
echo "=== Quick Summary ==="
echo ""
echo "Undocumented containers:"
for CT in 103 105 108 109 113 114 115 200; do
NAME=$(pct config $CT | grep "^hostname:" | awk '{print $2}')
IP=$(pct config $CT | grep "^net0:" | grep -oP 'ip=\K[^,]+' || echo "DHCP")
STATUS=$(pct status $CT | awk '{print $2}')
printf "CT %3d: %-20s %-15s %s\n" $CT "$NAME" "$IP" "$STATUS"
done
EOF