Como verificar o uso da rede nos últimos X minutos

0

Eu tenho um PC de mídia (que também é um servidor de teste da web na LAN) que quero reinicializar de vez em quando, desde que não esteja em uso. Eu tenho testes no local para o servidor usando kodi, mito, etc (no entanto, o visor para kodi também), no entanto, eu preciso testar se alguma coisa está usando na rede (cópia de arquivos, desenvolvimento de sites, assistindo algo etc). / p>

Eu acho que a maneira mais fácil de fazer isso é descobrir quantos dados foram transferidos pela rede nos últimos 3mins ou mais. Como posso fazer isso a partir de um script bash (arquivo .sh executado pelo cron)?

    
por MicWit 07.02.2016 / 02:28

1 resposta

0

OK, a solução encontrada usando rx_bytes e tx_bytes (bytes recebidos e transmitidos, também pode usar pacotes ou verificar pacotes descartados, veja: link )

O script:

#!/bin/bash

R1=$(cat /sys/class/net/eth0/statistics/rx_bytes)
T1=$(cat /sys/class/net/eth0/statistics/tx_bytes)
sleep $test_time
R2=$(cat /sys/class/net/eth0/statistics/rx_bytes)
T2=$(cat /sys/class/net/eth0/statistics/tx_bytes)

tot=$(( (R2 + T2 - R1 - T1) / 1024 ))

echo $tot

Exemplo de uso (lembre-se de jogar a quantidade de tempo em segundos):

test_time=10 ~/test.sh

Isso verificaria quantos KB foram enviados / recebidos em um período de 10 segundos. É claro que você pode editar o script para incluir somente R ou T se você quer apenas o valor enviado ou recebido, etc. Este comando funcionará de outro arquivo .sh ou dentro do terminal, por SSH, etc.

    
por MicWit 07.02.2016 / 05:54