Como salvar a saída do comando superior em um arquivo
O comando top do Linux é altamente utilizado por administradores de sistema para exibir estatísticas do sistema em tempo real sobre tempo de atividade do sistema e média de carga, memória usada, tarefas em execução, um resumo dos processos ou threads e informações detalhadas sobre cada processo em execução.
Porém, além da visualização em tempo real do sistema em execução, a saída do comando top pode ser salva em um arquivo, usando o sinalizador -b
, que instrui top a operar em modo batch e -n
sinalizador para especificar a quantidade de iteração que o comando deve gerar.
No exemplo abaixo, redirecionaremos a saída do comando top para o arquivo top.txt
no diretório de trabalho atual. O argumento -n será usado para enviar apenas um instantâneo do comando para o arquivo mencionado.
top -b -n 1 > top.txt
Para ler o arquivo resultante, use um utilitário de leitura de arquivos de linha de comando, como o comando cat, less ou more.
less top.txt
Para obter cinco iterações do comando superior, execute o comando conforme mostrado no trecho abaixo.
top -b -n 5 > top-5iterations.txt
Para exibir apenas o número de tarefas em execução do arquivo resultante, use o filtro grep, conforme mostrado no exemplo de comando abaixo.
cat top-5iterations.txt | grep Tasks
Para tirar um instantâneo de um processo específico no utilitário superior, execute o comando com o sinalizador PID (-p)
. Para obter o PID de um processo em execução, emita o comando pidof em relação ao nome do processo em execução.
Neste exemplo, monitoraremos o processo cron por meio do comando top tirando três instantâneos do PID.
pidof crond
top -p 678 -b -n3 > cron.txt
cat cron.txt
Usando um loop de iteração for, podemos exibir as estatísticas de um processo através de seu PID, a cada dois segundos, conforme mostrado no exemplo abaixo. A saída do loop também pode ser redirecionada para um arquivo. Usaremos o mesmo cron PID mostrado no exemplo acima.
for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done
Redirecionar a saída do loop para arquivo.
for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
cat cron.txt
Estes são apenas alguns exemplos de como você pode monitorar e coletar estatísticas do sistema e do processo por meio do comando top.