Comando superior - como reduzir as colunas exibidas

13

Podemos obter uma coluna específica em um comando superior, por exemplo, estou interessado apenas na coluna utilização de memória e uso da CPU.

Como reduzo as colunas exibidas do comando top apenas para as duas colunas acima?

    
por Surya 13.08.2013 / 17:02

4 respostas

16

NOTA: Supondo que você tenha esta versão de top (procps) . Você pode verificar com este comando:

$ top --version
    top: procps version 3.2.8
usage:  top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

procps é frequentemente a versão de top incluída no Fedora / CentOS / RHEL e outras variantes.

Alterando colunas

Se você procurar na página de manual por top , verá uma seção intitulada: "2b. SELECIONANDO e PEDINDO Colunas". Existem atalhos de teclado para alternar a visibilidade dos diferentes campos / colunas.

Por exemplo:

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right

Você pode usar a tecla f enquanto em top para chegar a uma tela secundária onde você pode especificar quais colunas devem ser visíveis ou não:

Por exemplo:

Current Fields:  ANOPQRSTUVbcdefgjlmyzWHIKX  for window 3:Mem
Toggle fields via field letter, type any other key to return 

* A: PID        = Process Id                                      * W: S          = Process Status
* N: %MEM       = Memory usage (RES)                              * H: PR         = Priority
* O: VIRT       = Virtual Image (kb)                              * I: NI         = Nice value
* P: SWAP       = Swapped size (kb)                               * K: %CPU       = CPU usage
* Q: RES        = Resident size (kb)                              * X: COMMAND    = Command name/line
* R: CODE       = Code size (kb)
...

Existem mais, estas são apenas uma amostra. Quando você terminar de alternar as colunas da maneira que quiser, use o Esc para sair da tela de seleção.

Salvando configuração

Você pode usar o Deslocamento + W para salvar suas alterações, então elas são os padrões:

  W         Write configuration file

O arquivo é armazenado aqui, $HOME/.toprc , e é assim:

$ more .toprc 
RCfile for "top with windows"       # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
    winflags=129016, sortindx=19, maxtasks=0
    summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
    winflags=63416, sortindx=13, maxtasks=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
    winflags=65464, sortindx=13, maxtasks=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
    winflags=65464, sortindx=12, maxtasks=0
    summclr=3, msgsclr=3, headclr=2, taskclr=7

Veja a seção 5 da man page para mais detalhes, "5. FILES".

    
por 13.08.2013 / 17:08
2

[Centos-6 | Ubuntu 12.10] Este cmd imprime 4 processos superiores, ordenados por CPU UTILIZAÇÃO

top -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

Resultado

%CPU      %MEM      COMMAND
7.7       0.2       top
0.0       0.3       init
0.0       0.0       kthreadd
0.0       0.0       migration/0

Nota: head -n 5 em vez de 4 porque também temos nome da coluna

colunas $ 9, $ 10, $ 12 significa CPU, MEM, COMMAND. Use o comando 'top' para obter os números das colunas

Classificar por MEMORY USAGE (seu 'top' deve suportar -m para executar isso)

# this work on my centos-6 machine, NOT work on my Ubuntu 12.10
top -m -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5
    
por 13.08.2013 / 17:38
0

Configuração de linha de comando
Eu não queria afetar todo o meu usuário, sobrescrevendo o usuário .toprc , então eu criei uma solução para ter uma configuração separada por caso de uso.
Você pode fazer com que top use um arquivo de configuração personalizado em vez daquele no diretório inicial de seus usuários.
Basta alterar a variável HOME para um diretório personalizado contendo o arquivo .toprc para suas necessidades.

# TOPRC_PROFILE_DIRECTORY contains .toprc (or can be created by saving using shift+w after configuring using keybindings) 
TOPRC_PROFILE_DIRECTORY="<your-directory>"
HOME="$TOPRC_PROFILE_DIRECTORY" top
    
por 11.04.2018 / 11:26
0

para visualizar no formato json e remover o cabeçalho também

top -bn 1 | grep "^ " | awk '{ printf("%s%s%s\n","{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | head -n 6 | tail -n +2

saída como abaixo,

{CPU:6.4,MEM:0.3,CMD:gnome-terminal}
{CPU:6.4,MEM:1.9,CMD:chrome}
{CPU:0.0,MEM:0.0,CMD:init}
{CPU:0.0,MEM:0.0,CMD:kthreadd}
{CPU:0.0,MEM:0.0,CMD:ksoftirqd/0}
    
por 16.08.2018 / 21:59

Tags