Ajudaria se você fosse muito mais específico sobre o que está tentando fazer.
Aqui está um exemplo simplista extremamente :
while true
do
clear
date
sleep 1
done
você pode usar o comando watch (1) para executar seu script em intervalos regulares:
watch -n 1 myscript.sh
Isso executará myscript.sh
a cada 1 segundo limpando a tela entre cada execução e com um timestamp no canto. Você pode usar a opção -d
e até realçar as diferenças na saída por execução.
A maioria desses dados geralmente é exposta nas primitivas do sistema de arquivos virtual / proc. Cada processo tem uma entrada em / proc em um diretório chamado PID. Então / proc / 5437 teria os primitivos para o processo 5437. Lendo os primitivos e analisando apropriadamente você ainda assim fechará o que o topo faz.
Top na verdade funciona chamando chamadas de função específicas que extraem essas informações diretamente do kernel, em vez de extraí-las dos arquivos. Para fazer o mesmo do bash, você teria que extraí-lo do sistema de arquivos virtual / proc ou extraí-lo de outras chamadas, como ps
.
Quanto ao tempo real, isso não é possível no nível de detalhes que o top fornece. Você pode dividir o tempo bem o suficiente para que pareça ser em tempo real, mas você ainda estará obtendo fatias de tempo.
Erm, caso você esteja olhando para top
output por um longo tempo, e não apenas para verificar se um programa está indo bem, eu sugiro usar htop .
Ele oferece muitas informações em tempo real e é mais fácil de controlar e gerenciar.
Você pode alterar o layout da saída, como gráficos de barra e colunas.
top
usa Malditos e lê o sistema de arquivos /proc