Gravando o uso da CPU por núcleo e o uso de RAM/CPU por processo em um arquivo de log no OS X

Gravando o uso da CPU por núcleo e o uso de RAM/CPU por processo em um arquivo de log no OS X

Estou escrevendo um script que grava o uso de memória e CPU em um arquivo de log, a cada hora em um cronjob. O arquivo de log será parecido com isto:

"/n====Uso de CPU por núcleo===="

Núcleo0: 59,05% usado

Core1: 57,68% usado

"/n====Uso de RAM/CPU por processo===="

PID | RAM utilizada (KB) | % CPU usada | COM | DO UTILIZADOR

01 | 00003352 | 0,15% | /sbin/lançamento | raiz
11 | 00009220 | 0,65% | /usr/libexec/Usar | raiz
12 | 00005504 | 7,81% | /usr/libexec/kex | raiz

Provavelmente usará um comando para uso de CPU por núcleo e outro comando para uso de RAM/CPU por processo, mas eu poderia usar um comando para ambos ou mais de dois comandos no total.

Os seguintes comandos mostram alguns ou todos os dados que preciso, mas infelizmente não são soluções:

  • topnão tem -bcomando no OS X, ao contrário do Linux. Isso significa que ele é atualizado automaticamente e, portanto, não é adequado para gravação em um arquivo de log.Comando para obter% de uso por CPU/núcleo?

  • htopé um programa interativo inadequado para gravação em um arquivo de log. E, de qualquer maneira, mostra o uso da CPU por núcleo como um gráfico de barras ASCII.Comando para obter% de uso por CPU/núcleo?

  • pspode subestimar grosseiramente o uso de memória, por exemplo, quando páginas são compartilhadas ou quando vários aplicativos usam as mesmas bibliotecas vinculadas dinamicamente. Caso contrário, eu usaria ps -eo "pid rss pmem pcpu comm user".

  • mpstatnão está no OS X e não está disponível no homebrew.

Fazer com que meu usuário instale o homebrew a partir da linha de comando é aceitável, mas fazê-lo compilar a partir do código-fonte e adicionar manualmente os comandos ao bash não é.

Além disso, todo o tempo precisa ser feito no cronjob, então não posso usar comandos de atualização automática e eliminá-los após o primeiro ciclo.

Obrigado pela ajuda. :)

informação relacionada