Você pode definir a variável de ambiente COLUMNS
como um valor grande. Por exemplo, para configurá-lo apenas para top
invocation:
$ COLUMNS=1000 top -c -b -n 1 > top.log
Pelo menos funciona no bash 4.0.33 no Ubuntu 9.10.
O comando a seguir é útil para capturar os processos atuais que estão ocupando mais CPU e armazenam em um arquivo:
top -c -b -n 1 > top.log
O sinalizador -c
é particularmente útil porque fornece os argumentos da linha de comando de cada processo, em vez de apenas o nome do processo.
Sem -c
:
2497 root 18 0 11264 5888 1524 S 0.0 0.1 0:03.31 miniserv.pl
Com -c
(informações adicionais úteis sobre o comando):
2497 root 18 0 11264 5888 1524 S 0.0 0.1 0:03.31 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf
O problema é que cada linha de saída é truncada para caber na janela do terminal atual. Isso é ok se você pode ter um terminal grande porque você tem um monte de saída, mas se o seu terminal tem apenas 165 caracteres, você só obtém 165 caracteres de informação por processo e muitas vezes não há caracteres suficientes para mostrar o comando completo do processo. . Esse é um problema específico quando o comando é executado sem um terminal, por exemplo, se você fizer isso por meio de um cron job.
Alguém sabe como parar top
truncando dados ou forçar top
a exibir um certo número de caracteres por linha?
Isso não é urgente porque existe um método alternativo de obter os 10 principais processos ordenados pelo uso da CPU:
ps -eo pcpu,pmem,user,args | sort -r -k1 | head -n 10