runv-server

server tooling for runv.club
Log | Files | Refs | README

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}"