From 0cbd4b6217edf1133704a1d98db604df78504c20 Mon Sep 17 00:00:00 2001 From: Timmy Date: Wed, 1 Apr 2026 16:59:49 +0800 Subject: [PATCH] fix: correct node storage query in check_storage.sh --- cluster/check_storage.sh | 52 +++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/cluster/check_storage.sh b/cluster/check_storage.sh index 35e2327..50830f6 100755 --- a/cluster/check_storage.sh +++ b/cluster/check_storage.sh @@ -17,7 +17,7 @@ echo "" # 1. PVC η‹€ζ…‹ echo "πŸ“¦ PVC (資料卷)" echo "------------------------------------------" -kubectl get pvc -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,SIZE:.spec.resources.requests.storage,AGE:.metadata.age +kubectl get pvc # 硱計 PVC PVC_TOTAL=$(kubectl get pvc --no-headers 2>/dev/null | wc -l) @@ -37,11 +37,7 @@ echo "" if kubectl get ns longhorn-system >/dev/null 2>&1; then echo "πŸ’Ύ Longhorn ε„²ε­˜" echo "------------------------------------------" - - # 取得 volume η‹€ζ…‹ - kubectl -n longhorn-system get volumes -o custom-columns=NAME:.metadata.name,STATE:.status.state,ε₯εΊ·:.status.robustness,NODE:.status.currentNodeID 2>/dev/null || { - kubectl -n longhorn-system get volumes - } + kubectl -n longhorn-system get volumes echo "" @@ -72,33 +68,29 @@ if kubectl get ns longhorn-system >/dev/null 2>&1; then echo "------------------------------------------" for node in vm120 vm121 vm122; do - NODE_INFO=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus}" 2>/dev/null) - if [ -n "$NODE_INFO" ]; then - # 取得第一個 disk ηš„θ³‡θ¨Š - DISK_NAME=$(echo "$NODE_INFO" | grep -oP '^\s+"\K[^"]+' | head -1) - if [ -n "$DISK_NAME" ]; then - STORAGE_AVAIL=$(echo "$NODE_INFO" | grep -A1 "$DISK_NAME" | grep storageAvailable | grep -oP '\d+' | head -1) - STORAGE_MAX=$(echo "$NODE_INFO" | grep -A1 "$DISK_NAME" | grep storageMaximum | grep -oP '\d+' | head -1) + # ε–εΎ—η―€ι»žηš„ε„²ε­˜θ³‡θ¨Š + STORAGE_AVAIL=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus.*.storageAvailable}" 2>/dev/null | head -1) + STORAGE_MAX=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus.*.storageMaximum}" 2>/dev/null | head -1) - if [ -n "$STORAGE_AVAIL" ] && [ -n "$STORAGE_MAX" ]; then - # 轉換為 GB - AVAIL_GB=$((STORAGE_AVAIL / 1024 / 1024 / 1024)) - MAX_GB=$((STORAGE_MAX / 1024 / 1024 / 1024)) - USED_GB=$((MAX_GB - AVAIL_GB)) - PERCENT=$((USED_GB * 100 / MAX_GB)) + if [ -n "$STORAGE_AVAIL" ] && [ -n "$STORAGE_MAX" ]; then + # 轉換為 GB + AVAIL_GB=$((STORAGE_AVAIL / 1024 / 1024 / 1024)) + MAX_GB=$((STORAGE_MAX / 1024 / 1024 / 1024)) + USED_GB=$((MAX_GB - AVAIL_GB)) + PERCENT=$((USED_GB * 100 / MAX_GB)) - # 鑏色 - if [ $PERCENT -lt 70 ]; then - COLOR="$GREEN" - elif [ $PERCENT -lt 90 ]; then - COLOR="$YELLOW" - else - COLOR="$RED" - fi - - echo -e "$node: ${COLOR}${USED_GB}G / ${MAX_GB}G (${PERCENT}%)${NC}" - fi + # 鑏色 + if [ $PERCENT -lt 70 ]; then + COLOR="$GREEN" + elif [ $PERCENT -lt 90 ]; then + COLOR="$YELLOW" + else + COLOR="$RED" fi + + echo -e "$node: ${COLOR}${USED_GB}G / ${MAX_GB}G (${PERCENT}% 使用)${NC}" + else + echo "$node: η„‘ζ³•ε–εΎ—ε„²ε­˜θ³‡θ¨Š" fi done fi