
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:
top
não tem-b
comando 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?ps
pode 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 usariaps -eo "pid rss pmem pcpu comm user"
.mpstat
nã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. :)