Как я могу получить значения в реальном времени, чтобы создать свой собственный скрипт в BASH, специально как показано во вложении

#linux #bash #networking #fedora #bash4

#linux #bash #сеть #fedora #bash4

Вопрос:

Я пытаюсь написать в BASH свое собственное отслеживание, такое как показано во вложении.

введите описание изображения здесь

В частности, мне нужно отслеживать историю получения и отправки данных в сети. Где я могу получить эти сетевые значения отправки / получения, это в файле или это выводится из некоторых команд в Linux?

Используя BASH, я пытаюсь реализовать что-то подобное, как показано ниже:

пример:

 /* My 10 seconds timer */ 
t = new javax.swing.Timer(10000, new ActionListener() 
{
    public void actionPerformed(ActionEvent ae) 
    {
    }
}); 
  

Продолжение: (хороший сайт: http://www.debianhelp.co.uk/networktools1.htm )

 $ sudo apt-get install bwm-ng; 
yum -y install bwm; 

# Show me only plain mode 
$ bwm-ng -o plain

 bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 |         iface                    Rx                   Tx               Total
 ==============================================================================
              lo:       88803.53 KB/s        88803.53 KB/s        88803.53 KB/s
            eth0:           0.13 KB/s            0.13 KB/s            0.13 KB/s
 ------------------------------------------------------------------------------
           total:       88803.66 KB/s        88803.66 KB/s        88803.66 KB/s

# Show only the interface that i need to see
$ bwm-ng -o plain -I eth0

bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 |         iface                    Rx                   Tx               Total
 ==============================================================================
            eth0:           0.13 KB/s            0.13 KB/s            0.13 KB/s
 ------------------------------------------------------------------------------
           total:           0.13 KB/s            0.13 KB/s            0.13 KB/s

# Show only in MB format or KB format
# by skiping -d will default show as KB
$ bwm-ng -o plain -d

bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 /         iface                    Rx                   Tx               Total
 ==============================================================================
              lo:          85.79 MB/s           85.79 MB/s           85.79 MB/s
            eth0:         246.58  B/s          246.58  B/s          246.58  B/s
 ------------------------------------------------------------------------------
           total:          85.79 MB/s           85.79 MB/s           85.79 MB/s

 $ bwm-ng -o plain -N -d | grep total:
      total:           0.00  B/s            0.00  B/s            0.00  B/s
      total:           1.28 MB/s            1.28 MB/s            1.28 MB/s
      total:           1.19 MB/s            1.19 MB/s            1.19 MB/s
      total:           1.19 MB/s            1.19 MB/s            1.19 MB/s


 # another tool i used apt-get install vnstat
 # bwm-ng was doing wrong strange on other interfaces but this one 
 # now showing correct
 $ vnstat -u -i lo 
 $ vnstat -u -i eth0
 $ vnstat 
 $ iftop -i eth0
  

Ответ №1:

РЕДАКТИРОВАТЬ: простой способ: вы всегда можете использовать mrtg или cacti вместо того, чтобы делать это самостоятельно.

в противном случае… ввод и вывод байтов каждые 2 секунды (нажмите ctrl c, чтобы остановить это):

 default_device=$(awk ' { if ($2 == '00000000') print $1 ; } ' < /proc/net/route)
while true
do
    bytesin=$(grep $default_device /proc/net/dev | cut -d':' -f2 | awk ' { print $1; } ')
    bytesout=$(grep $default_device /proc/net/dev | cut -d':' -f2 | awk ' { print $9; } ')
    echo bytesin=$bytesin bytesout=$bytesout
    sleep 2
done
  

вы получите вывод, подобный этому:

 bytesin=622734605 bytesout=1249429296
bytesin=622735091 bytesout=1249429620
bytesin=622735523 bytesout=1249430120
bytesin=622736268 bytesout=1249430481
bytesin=622736874 bytesout=1249430535
  

значения получены для устройства, на котором установлен маршрут по умолчанию.

Комментарии:

1. Ваш скрипт никогда не показывает 0 байт. Где мой системный диспетчер задач, как показано на снимке экрана. Иногда показывает 0 байт. Кто сейчас действительно запутался? 🙂

2. это счетчики, которые всегда увеличиваются; чтобы получить передачу в секунду, вам нужно вычислить ее, используя смежные значения и временное окно, в котором считываются значения

3. Обновите мое продолжение выше. bwm также был очень полезен.

Ответ №2:

Вы можете написать свой собственный скрипт для синтаксического анализа :

  • вывод top -b -n1 для процессора
  • свободно для памяти / подкачки
  • ifconfig eth0 для сети # замените eth0 своим устройством

Комментарии:

1. ifconfig wlan0 никогда не показывает TX / RX как 0 байт, где я вижу здесь, он показывает 0 байт, кому я доверяю system task manager или ifconfig? Всегда ли я тогда отправляю и получаю байты? например: Смотрите здесь: i.imgur.com/TY7hK.png