como analisar a saída do comando watch para os últimos 5 dígitos?

0

Do comando

watch -n1 "ifconfig eth0 | grep GiB"

Eu dei a saída abaixo.

Agora eu só quero os últimos 5 dígitos antes (GiB). Eu escrevi um regex para ele e parece funcionar

(\d{1,4})(?!.*\d)\sGiB

O único problema é que não posso usá-lo com o comando que mostrei acima? Estou usando o ubuntu qualquer ajuda

    
por asadz 21.05.2013 / 16:33

2 respostas

2

Seu teste será interrompido se o servidor for reinicializado ou estiver muito ocupado: ifconfig dimensiona as unidades que ele usa, dependendo de quantos dados foram transferidos. Por exemplo, um servidor que eu gerencio tem isso:

RX bytes:8697322454215 (7.9 TiB)  TX bytes:2151364718288 (1.9 TiB)

Você pode achar mais fácil assistir ao conteúdo de /proc/net/dev , que é de onde ifconfig obtém seus dados. Seu conteúdo parece

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo: 1204278   13020    0    0    0     0          0         0  1204278   13020    0    0    0     0       0          0
 wlan0: 658883131  568453    0    0    0     0          0         0 56092206  420036    0    0    0     0       0          0
    
por 21.05.2013 / 16:40
0

tente sed:

| sed 's/.*(\([0-9.]*\s\)GiB)\s.*//'
    
por 22.05.2013 / 00:17