Quanto foi carregado nos últimos cinco minutos?

1

Eu não preciso de algum tipo de status visual em tempo real da minha ethernet - eu quero executar o meu script quando últimos cinco minutos eu fiz o upload de menos de X. Então eu preciso obter apenas um número de algum comando. O que você pode recomendar?

Eu uso o Ubuntu 14.04.

    
por Vitaly Zdanevich 21.02.2016 / 13:41

2 respostas

2

ifconfig <interface> fornece a taxa de transferência de uma interface específica.

Por exemplo,

root@trinity:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 28:92:4a:32:0c:43
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2a92:4aff:fe32:c43/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1554100056 errors:0 dropped:3528 overruns:0 frame:15941
          TX packets:570492690 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2186365577866 (1.9 TiB)  TX bytes:180850207310 (168.4 GiB)
          Interrupt:18

Apenas leia o bit TX bytes e faça as contas. Você precisará rastreá-lo em um arquivo em algum lugar para poder descobrir o diferencial.

O comando ifconfig está sendo reprovado e as pessoas sugerirão o uso de ip . O comando relevante com ip é,

root@trinity:~# ip -s link ls  eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether 28:92:4a:32:0c:43 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    2186366161514 1554101939 0       3197    15941   9994871
    TX: bytes  packets  errors  dropped carrier collsns
    180850392034 570493984 0       0       0       0
    
por 21.02.2016 / 13:59
5

No Linux, ler /sys/class/net/<interface>/tx_bytes e /sys/class/net/<interface>/rx_bytes (dependendo de qual direção você está interessado) é uma boa maneira de obter os contadores para o número de bytes recebidos e o número de bytes enviados em uma interface. Os contadores também estão disponíveis juntos para todas as interfaces em /proc/net/dev , mas você terá que fazer mais análise. Você pode ler os valores antes de começar a transferi-los e lê-los novamente 5 minutos depois e depois subtrair para obter o valor transferido durante o período de 5 minutos.

    
por 21.02.2016 / 13:56