LINUX.ORG.RU

bash скрипт работает через раз =\


0

1

Захотел я посмотреть загруженность канала через bash, но не тут то было. Скрипт работает через раз. Первый запуск - выводится все нормально. Второй запуск - выводятся нули. Третий запуск - снова числа. Четвертый - снова нули. И так далее.

Объясните ламеру, что не так?

#! /bin/bash

INTERFACE=eth0

while /bin/true; do
        sleep 1
        bytes_old=`grep $INTERFACE: /proc/net/dev | cut -d :  -f2 | awk '{ print $1 }'`
        sleep 1
        bytes_new=`grep $INTERFACE: /proc/net/dev | cut -d :  -f2 | awk '{ print $1 }'`

        bytes=$(($bytes_new - $bytes_old))

        echo $bytes

done

Ответ на: комментарий от anonymous

Обнаружил, что данные в /proc/net/dev меняются раз в секунду. Видимо это и есть причина. Спасибо за наводку про данные.

kajfat ()
Ответ на: комментарий от kostik87

Он делает то же самое. Глянь исходники, если на слово не поверишь.

kajfat ()

У тебя x86? Я такой глюк видел на железках у которых offload на cpu.

steemandlinux ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.