Oi, Juliene! 
Que bacana ver você explorando awk e montando seu próprio script, está no caminho certo.
1) Por que free -h | grep Mem | awk ... pode não funcionar:
Alguns motivos comuns:
- Localização/idioma: em muitos sistemas a linha começa com Mem:(com dois pontos). Se você usargrep Memsem ancorar no início, pode coincidir algo indesejado; se usargrep "^Mem"e a palavra estiver diferente (ex.: outro idioma), não bate.
- Espaçamento variável: o espaçamento entre colunas muda de acordo com o terminal e o tamanho dos números; como você usou $2,$3,$4emawk, está ok, mas se ogrepnão capturar a linha certa, nada chega aoawk.
- Cabeçalhos e formato: versões diferentes do procpspodem alterar levemente o cabeçalho.
Sua solução awk 'NR==2' funciona bem porque a segunda linha do free traz os dados da RAM em praticamente todas as versões, independentemente do idioma. É uma forma simples e robusta.
2) Formas mais confiáveis de pegar a linha da RAM:
Se quiser manter filtragem por conteúdo (e não por número da linha), prefira ancorar o início e aceitar variações:
# 2.1) Forte quanto a idioma (desde que comece com "Mem")
free -h | awk '/^Mem/ {print "Total:", $2, "| Usada:", $3, "| Livre:", $4}'
# 2.2) Forçar idioma "C" (útil se seu sistema estiver pt_BR e você quer previsibilidade)
LC_ALL=C free -h | awk '/^Mem/ {print "Total:", $2, "| Used:", $3, "| Free:", $4}'
# 2.3) Igual à sua (por linha), muito prática:
free -h | awk 'NR==2 {print "Total:", $2, "| Usada:", $3, "| Livre:", $4}'
Observação importante sobre “Usada”:
O free mostra as colunas: total, used, free, shared, buff/cache, available. A coluna used inclui buffers e cache. Se você quiser a memória “realmente” usada por apps, uma métrica comum é:
used_real = total - free - buff/cache
Em awk:
free -m | awk '/^Mem/ {used=$2-$4-$6; printf "Total: %sMi | Usada(real): %sMi | Livre: %sMi | Buff/Cache: %sMi\n", $2, used, $4, $6}'
Pontos fortes do seu script:
- Estrutura em funções (ótimo para ler e manter).
- Logs separados por categoria.
- Testes de existência dos arquivos de log.
- Checagem de conectividade (ping e curl).
Continue firme nos estudos.
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!