Este script python simples deve fazer o que você quer:
import time
import string
import sys
import commands
def get_cpumem(pid):
d = [i for i in commands.getoutput("ps aux").split("\n")
if i.split()[1] == str(pid)]
return (float(d[0].split()[2]), float(d[0].split()[3])) if d else None
if __name__ == '__main__':
if not len(sys.argv) == 2 or not all(i in string.digits for i in sys.argv[1]):
print("usage: %s PID" % sys.argv[0])
exit(2)
print("%CPU\t%MEM")
try:
while True:
x,y = get_cpumem(sys.argv[1])
if not x:
print("no such process")
exit(1)
print("%.2f\t%.2f" % (x,y))
time.sleep(0.5)
except KeyboardInterrupt:
print
exit(0)
Primeiro você precisa descobrir o ID do processo que deseja monitorar, então você pode executar o script com o PID como um argumento:
python log.py 3912
Ele imprimirá o uso da CPU e o uso da memória RAM em porcentagem duas vezes por segundo:
%CPU %MEM
0.90 0.40
1.43 0.40
8.21 0.40
...
Você pode redirecionar sua saída para um arquivo para importá-lo para uma planilha posterior ( python log.py 9391 > firefox_log.txt
) e importar os dados para uma planilha selecionando Tab
como seu separador.
O programa é encerrado quando você pressiona Ctrl + C ou quando o processo é eliminado.