Estou escrevendo um script de monitoramento. Estou executando em uma máquina específica e funciona. Está previsto para ser executado em várias máquinas Linux, não ligadas a uma única distribuição.
Aqui estão os comandos e os tratamentos relacionados que eu faço:
1) uso da CPU:
top -bn 2 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*//" | awk '{print 100 - $1"%"}'
92%
93%
Eu registro os dois valores.
2) Uso de RAM
free -m
_____total used free shared buff/cache available <br>
Mem 3791 1183 875 16 1732 2326 <br>
Swap 3071 0 3071
Registre a memória e o swap usados / total
3) Uso do disco:
df
(mantendo apenas as colunas 2 e 3, que são respectivamente o número total de blocos de 1024 bits e os blocos usados):
1K_blocks used_blocks
27740944 1996820
1931168 0
1941352 0
1941352 16904
1941352 0
508588 151576
388272 0
Eu comparo as duas somas da coluna para obter o espaço total em disco.
4) Tempo de atividade:
PS C:\> invoke-sshcommand -ComputerName $ip {uptime}
09:39:01 up 13 days, 21:37, 1 user, load average: 0,00, 0,01, 0,05
Corte esta string e registre dados úteis.
Esses comandos fornecerão a mesma forma de saída, independentemente da distribuição do Linux?
Mais genericamente, um tratamento de dados + de comando ainda seria válido em qualquer distribuição?