runv-status (2203B)
1 #!/bin/sh 2 # runv.club — status rápido do servidor 3 # 4 # Restrito ao utilizador pmurad-admin (informação sensível: disco, sessões, carga). 5 # Usar printf %b para argumentos com sequências ANSI (\033). 6 7 RUNV_STATUS_USER=pmurad-admin 8 if [ "$(id -un)" != "$RUNV_STATUS_USER" ]; then 9 printf '%s\n' "runv-status: apenas o utilizador «${RUNV_STATUS_USER}» pode executar este comando." >&2 10 exit 1 11 fi 12 13 R='\033[0m' 14 G='\033[0;32m' 15 C='\033[0;36m' 16 Y='\033[0;33m' 17 B='\033[1m' 18 19 printf '%b\n' "${G}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${R}" 20 printf '%b %brunv.club — status do servidor%b\n' "${B}" "${G}" "${R}" 21 printf '%b\n' "${G}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${R}" 22 printf '\n' 23 24 if command -v hostname >/dev/null 2>&1; then 25 printf '%bHostname:%b %s\n' "${B}" "${R}" "$(hostname)" 26 else 27 printf '%bHostname:%b (indisponível)\n' "${B}" "${R}" 28 fi 29 30 if command -v uptime >/dev/null 2>&1; then 31 printf '%bUptime / carga:%b %s\n' "${B}" "${R}" "$(uptime 2>/dev/null || true)" 32 fi 33 34 if command -v free >/dev/null 2>&1; then 35 printf '\n%bMemória:%b\n' "${B}" "${R}" 36 free -h 2>/dev/null || free 2>/dev/null || printf ' (indisponível)\n' 37 fi 38 39 if command -v df >/dev/null 2>&1; then 40 printf '\n%bDisco (raiz e /home se existir):%b\n' "${B}" "${R}" 41 df -h / 2>/dev/null || true 42 if [ -d /home ]; then 43 df -h /home 2>/dev/null || true 44 fi 45 fi 46 47 if command -v who >/dev/null 2>&1; then 48 printf '\n%bUsuários com sessão (who):%b\n' "${B}" "${R}" 49 wcnt=$(who 2>/dev/null | wc -l | tr -d ' ') 50 if [ "${wcnt:-0}" -gt 0 ] 2>/dev/null; then 51 who 2>/dev/null 52 else 53 printf ' (nenhuma sessão listada ou comando indisponível)\n' 54 fi 55 fi 56 57 printf '\n%bAtalhos:%b runv-help · runv-links\n' "${Y}" "${R}" 58 printf '%b\n' "${G}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${R}"