Acho que a saída do comando shell top
é uma maneira simples e familiar de obter uma idéia aproximada da saúde de uma máquina. Eu gostaria de servir top
a saída (ou algo muito semelhante a ela) de um pequeno servidor Web em uma máquina para fins de monitoramento bruto.
Existe uma maneira de obter o máximo para escrever sua saída de texto exatamente uma vez , sem formatar caracteres? Eu tentei isso:
(sleep 1; echo 'q') | top > output.txt
Isso parece estar perto do que eu quero, exceto que (1) não há garantia de que não receberei mais ou menos que uma tela cheia de informações e (2) eu tenho que remover todos os caracteres de formatação do terminal.
Ou existe algum outro top
comando semelhante que lista informações de memória / uso de CPU / uptime em toda a máquina e em nível de processo?
(Idealmente, eu adoraria uma estratégia que seja portátil para Linux e Mac OS X, já que nossos desenvolvedores usam Macs e nosso ambiente de produção é o Linux.)
fonte
top
no OS X suportasse o sinalizador -b. :-( Infelizmente, isso não acontece, e eu não ver uma versãotop
disponível através homebrew Esta parece ser exatamente a resposta certa para Linux, tho../usr/bin/top -l 1
no OSX 10.9.4 é perfeito ... obrigado! Quanto à instalação do GNU top, eu poderia instalá-lo na minha máquina, mas teria que convencer os outros desenvolvedores a instalá-lo em suas máquinas para que meu código funcionasse para eles, então prefiro evitar isso. (Se não estiver disponível através do homebrew, haverá resistência.) Agora que mudarei com base na plataforma, serei ganancioso ... você conhece algum semi-equivalente do Windows para esses desenvolvedores (temos alguns) também pode ter uma página de status bruta? (Caso contrário, tudo bem, sua resposta já é super útil!) #top -l 2
e jogar fora a primeira página de amostras?Para obter números de tipo semelhantes em um sistema Windows, consulte o PowerShell.
Apenas para obter uma lista dos processos que você vê
get-process
. Dê uma olhada nesta referência .Ao fazer algumas pesquisas adicionais, encontrei um pequeno comando aqui .
Que, se você retirar o loop while, para as suas necessidades seria:
ps
no powershell é um apelido paraget-process
.fonte