A resposta a essa pergunta pode variar de um comando simples a ferramentas de monitoramento complexas, dependendo de suas necessidades.
Você pode começar simplesmente executando top -b -n 1 >> file.txt
(-b para o modo batch, -n 1 para executar uma única iteração do topo) e armazenar a saída (anexada) no arquivo.txt. Você também pode filtrar a saída "superior" como top -b -n 1 | grep init
para ver apenas os dados do processo "init" ou top -b -n 1 | grep "init" | head -1 |awk '{print $9}'
para obter a 9ª coluna dos dados do processo init (o valor da CPU).
Se você quiser usar um script de shell, poderá:
CPU=$(top -b -n1 | grep "myprocess" | head -1 | awk '{print $9}')
MEM=$(top -b -n1 | grep "myprocess" | head -1 | awk '{print $10}')
Ou, com uma única execução do topo:
read CPU MEM <<<$(top -b -n1 | grep "myprocess" | head -1 | awk '{print $9 " " $10}')
(note que grep, head e awk podem ser mesclados em um único comando awk, mas para a simplicidade estou usando comandos separados).
Usamos a parte superior neste exemplo, mas há métodos alternativos para outras métricas (verifique sar
, iostat
, vmstat
, iotop
, ftop
e até mesmo leitura / proc / *).
Agora você tem uma maneira de acessar os dados (uso da CPU). E no nosso exemplo, estamos anexando a um arquivo de texto. Mas você pode usar outras ferramentas para armazenar os dados e até graficá-los: armazenar em csv e gráfico com gnuplot / python / openoffice, usar ferramentas de monitoramento como zabbix, rrdtools, cactos, etc. Existe um grande mundo de ferramentas de monitoramento que permite coletar e representar graficamente os dados, como uso da CPU, uso de memória, disco io e até mesmo métricas personalizadas (número de conexões mysql, etc).
EDIT: finalmente, para responder especificamente à sua pergunta, se você quiser acompanhar as alterações facilmente para um teste simples, você pode executar top -b -n 1 >> /tmp/file.txt
no seu arquivo / etc / crontab, executando top a cada 5 minutos (ou qualquer outro intervalo de tempo se você substituir o / 5 abaixo).
0-59/5 * * * * root top -b -n1 >>/tmp/output.txt
(e um grep + head -1 no comando acima, se você estiver intimidado apenas em um único processo).
Note que o output.txt irá crescer, então se você quiser redefini-lo diariamente ou semanalmente, você pode "rm" com outra entrada crontab.