Pesquisa de site

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.