Esses comandos retornarão a mesma saída em diferentes distribuições do Linux? [fechadas]

1

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?

    
por Svart 03.06.2016 / 10:04

1 resposta

1

Will these commands give the exact same form of output regardless of the Linux distribution ?

Talvez, mas você não pode ter certeza disso.

Existem centenas de distribuições Linux ( DistroWatch conta 280 delas) e você não pode ter a garantia de que um script escrito para um funcionará - ou irá continuar para funcionar - em outro, especialmente se ele usar alguma opção ou sinalizador não POSIX.

O que você deve fazer, em vez de confiar na saída de comandos, é pegar os dados diretamente do sistema de arquivos /proc pseudo.

    
por 03.06.2016 / 13:28