Como posso escrever um shell script que mostre os resultados em tempo real?
Algo como o top
comando que atualiza os resultados após alguns intervalos fixos de tempo.
Como posso escrever um shell script que mostre os resultados em tempo real?
Algo como o top
comando que atualiza os resultados após alguns intervalos fixos de tempo.
curses
interface de ... mas eu acho que isso é mais pesadamente uma questão de programação e pertence a SORespostas:
Ajudaria se você fosse muito mais específico sobre o que está tentando fazer.
Aqui está um exemplo extremamente simplista:
fonte
você pode usar o comando watch (1) para executar seu script em intervalos regulares:
Isso será executado a
myscript.sh
cada 1 segundo, limpando a tela entre cada execução e com um carimbo de data / hora no canto. Você pode usar a-d
opção e ela ainda destacará as diferenças na saída por execução.fonte
watch
. Você poderia ser mais específico? Qual SO?A maioria desses dados geralmente é exposta nas primitivas do sistema de arquivos virtual / proc. Cada processo possui uma entrada em / proc em um diretório chamado PID. Portanto, / proc / 5437 teria as primitivas para o processo 5437. Lendo as primitivas lá e analisando apropriadamente, você ainda se aproxima do que a parte superior faz.
O Top realmente 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 a partir do bash, você teria que retirá-lo do sistema de arquivos virtual / proc ou extraí-lo de outras chamadas, como para
ps
.Quanto ao tempo real, isso não é factível no nível de detalhe que o topo fornece. Você pode cortar o tempo com precisão suficiente para que pareça ser em tempo real, mas continuará recebendo fatias de tempo.
fonte
Erm, caso você esteja analisando a
top
saída por mais tempo, e não apenas para verificar se um programa está indo bem, sugiro usar o htop .Ele fornece 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 barras e colunas.
fonte
top
usa maldições e lê o/proc
sistema de arquivosfonte
/proc
. Outra maneira de obter as informações é sysctl (8) / sysctl (3).