Eu realmente não sabia a melhor maneira de fazer a minha pergunta, daí você recebe uma pergunta horrivelmente nomeada.
Eu vou explicar o que eu quero fazer, talvez isso ajude você a me ajudar.
Eu gostaria que minha máquina Linux monitorasse continuamente (a cada 10 minutos) todos os processos da minha máquina. As informações de cada processo que eu preciso é o nome, uso da CPU, memória alocada (virtual) e memória residente (ram).
Se esses relatórios periódicos fossem examinados, eles se pareceriam com algo assim:
PROCESS CPU RAM VIRTUAL
name1 % MB MB
name2 % MB MB
...etc..etc
Esses relatórios devem ser armazenados de forma que eu possa acessá-los em uma data posterior, fornecendo um escopo de data / hora (intervalo). Por exemplo, se eu quiser ver o histórico dos meus processos a partir das 12:00:00 de 1.12.12 até às 12:00:00 2.12.12 eu posso - e deve dar-me a história dos processos para cada 10 minutos entre aqueles Bordas de data / hora.
O formato do retorno não é importante, e será manipulado por um script de qualquer maneira e pode ser modificado em qualquer coisa que eu precise.
Eu examinei algumas coisas até agora, mas não encontrei algo que claramente atenda às minhas necessidades. Entre as coisas que eu procurei: sar , free (1) , top (1) .. e algumas outras coisas.
Deve ser um problema simples, eu já posso ver todas essas informações simplesmente olhando para o meu htop
, mas eu preciso apenas de uma ferramenta que irá reunir os campos desejados para cada processo a cada 10 minutos, e então também me deixe extrair fatias desse dados baseados em escopos de data / hora (intervalos).
Nota: Eu tenho pouca experiência com o Linux, por isso, forneça informações detalhadas.
nota 2: A saída desejada será algo assim (depois de receber o intervalo desejado)
CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......
A mesma ideia com as outras informações.