Log grátis e top

Log grátis e top

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 ideia de como obter a saída de "free" e "top", analisá-los e salvá-los em um arquivo (anexando-o).

Por exemplo, quando executo "top", gostaria de salvar apenas a parte assim:

% CPU(s): 18,2 us,

E quando executo "free" quero apenas salvar a coluna "available" da primeira linha (Mem:).

Então, como faço isso no centos 7?

Responder1

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 fornecerá o uso médio da CPU no último minuto, que é mais preciso do que a% CPU usada porque você pode ter um pico de 100% e economizar mesmo que sua utilização média seja muito menor.

Responder2

Usando awk:

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

informação relacionada