Log grátis e top

1

Eu quero criar um bash no meu servidor para registrar uma parte da saída de "free" e "top" a cada 60 segundos. Eu sei como configurar o cron job, mas não tenho idéia de como obter a saída de "free" e "top" e analisá-los e salvar em um arquivo (anexá-lo).

Por exemplo, quando eu executo "top" eu gostaria de salvar apenas a parte como esta:

% Cpu (s): 18,2 nós,

E quando eu corro "free" eu só quero salvar a coluna "disponível" da primeira linha (Mem :).

Então, como eu faço isso em centos 7?

    
por Samul 30.10.2015 / 22:28

2 respostas

0

Usando awk :

top -n 1 | awk '/^%Cpu\(s\)/ {print "%Cpu(s)", $2, "us"}'
free | awk '/^Mem:/ {print $7}'
    
por 30.10.2015 / 22:36
1

Se você quiser monitorar a cada 1 minuto, recomendo usar a média de carga da CPU em vez do uso atual.

cat /proc/loadavg | awk '{print "Load last minute:", $1}'

Esta linha lhe dará o uso médio da CPU no último minuto, que é mais preciso do que a% da CPU usada porque você pode ter um pico de 100% e economizar, mesmo se a sua utilização média for muito menor.

    
por 31.10.2015 / 00:13