check_volumes.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/sh
  2. echo "📊 Quick Volume Status Check"
  3. echo "============================"
  4. echo ""
  5. # Check if master is running
  6. MASTER_URL="${MASTER_HOST:-master:9333}"
  7. if ! curl -s http://$MASTER_URL/cluster/status > /dev/null; then
  8. echo "❌ Master server not available at $MASTER_URL"
  9. exit 1
  10. fi
  11. echo "🔍 Fetching volume status from master..."
  12. curl -s "http://$MASTER_URL/vol/status" | jq -r '
  13. if .Volumes and .Volumes.DataCenters then
  14. .Volumes.DataCenters | to_entries[] | .value | to_entries[] | .value | to_entries[] | .value | if . then .[] else empty end |
  15. "Volume \(.Id):
  16. Size: \(.Size | if . < 1024 then "\(.) B" elif . < 1048576 then "\(. / 1024 | floor) KB" elif . < 1073741824 then "\(. / 1048576 * 100 | floor / 100) MB" else "\(. / 1073741824 * 100 | floor / 100) GB" end)
  17. Files: \(.FileCount) active, \(.DeleteCount) deleted
  18. Garbage: \(.DeletedByteCount | if . < 1024 then "\(.) B" elif . < 1048576 then "\(. / 1024 | floor) KB" elif . < 1073741824 then "\(. / 1048576 * 100 | floor / 100) MB" else "\(. / 1073741824 * 100 | floor / 100) GB" end) (\(if .Size > 0 then (.DeletedByteCount / .Size * 100 | floor) else 0 end)%)
  19. Status: \(if (.DeletedByteCount / .Size * 100) > 30 then "🎯 NEEDS VACUUM" else "✅ OK" end)
  20. "
  21. else
  22. "No volumes found"
  23. end'
  24. echo ""
  25. echo "💡 Legend:"
  26. echo " 🎯 NEEDS VACUUM: >30% garbage ratio"
  27. echo " ✅ OK: <30% garbage ratio"
  28. echo ""