Você pode usar / proc / net / dev para monitorar a atividade da rede, algo assim:
packets() {
# Get the number of packets of eth0 device
cat /proc/net/dev | grep eth0 | cut -f5 -d' ';
}
LAST=$(packets)
while [ true ]; do
sleep 1;
PACKS=$(packets)
DIFF=$(($PACKS-$LAST));
# I consider idle less than 10 packets per second
if [ $DIFF -le 10 ]; then
echo 'Idle!';
fi
LAST=$PACKS;
done
O truque aqui é o que você considera ocioso, já que o tráfego zero é uma impossibilidade do mundo real:)