Files
proxmox/scripts/archive/consolidated/verify/check-container-memory-limits.sh

98 lines
3.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Check memory limits for all containers on r630-02
# Usage: ./scripts/check-container-memory-limits.sh
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
PROXMOX_HOST="${PROXMOX_HOST_R630_02}"
# Colors
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${CYAN}${NC} $1"; }
log_success() { echo -e "${GREEN}${NC} $1"; }
log_warn() { echo -e "${YELLOW}${NC} $1"; }
log_error() { echo -e "${RED}${NC} $1"; }
echo ""
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${BLUE}Container Memory Limits Review - r630-02${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
# Get all containers
CONTAINER_VMIDS=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" \
"pct list 2>/dev/null | tail -n +2 | awk '{print \$1}'" || echo "")
if [ -z "$CONTAINER_VMIDS" ]; then
log_warn "No containers found"
exit 0
fi
echo "VMID | Name | Memory Limit | Swap | Current Usage | Status"
echo "-----|------|--------------|------|---------------|--------"
for vmid in $CONTAINER_VMIDS; do
# Get container info
CONTAINER_INFO=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" \
"pct list 2>/dev/null | grep \"^$vmid\" || echo \"\"" 2>/dev/null)
if [ -z "$CONTAINER_INFO" ]; then
continue
fi
name=$(echo "$CONTAINER_INFO" | awk '{print $3}')
status=$(echo "$CONTAINER_INFO" | awk '{print $2}')
# Get memory configuration
MEMORY=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" \
"pct config $vmid 2>/dev/null | grep '^memory:' | awk '{print \$2}'" 2>/dev/null || echo "N/A")
SWAP=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" \
"pct config $vmid 2>/dev/null | grep '^swap:' | awk '{print \$2}'" 2>/dev/null || echo "N/A")
# Get current memory usage if running
if [ "$status" = "running" ]; then
CURRENT_USAGE=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" \
"pct exec $vmid -- free -m 2>/dev/null | grep Mem | awk '{print \$3}'" 2>/dev/null || echo "N/A")
else
CURRENT_USAGE="N/A (stopped)"
fi
# Format memory values (memory is in bytes, convert to MB)
if [ "$MEMORY" != "N/A" ] && [ -n "$MEMORY" ] && [ "$MEMORY" != "0" ]; then
MEMORY_MB=$((MEMORY / 1024 / 1024))
MEMORY_DISPLAY="${MEMORY_MB}MB"
else
MEMORY_DISPLAY="Not set"
fi
if [ "$SWAP" != "N/A" ] && [ -n "$SWAP" ] && [ "$SWAP" != "0" ]; then
SWAP_MB=$((SWAP / 1024 / 1024))
SWAP_DISPLAY="${SWAP_MB}MB"
else
SWAP_DISPLAY="Not set"
fi
if [ "$CURRENT_USAGE" != "N/A" ] && [ "$CURRENT_USAGE" != "N/A (stopped)" ]; then
CURRENT_DISPLAY="${CURRENT_USAGE}MB"
else
CURRENT_DISPLAY="$CURRENT_USAGE"
fi
echo "$vmid | $name | $MEMORY_DISPLAY | $SWAP_DISPLAY | $CURRENT_DISPLAY | $status"
done
echo ""