Centos 7 получить единоразово текущую нагрузку на сеть в bit/s

B1
На сайте с 16.11.2015
Offline
62
701

Добрый день.

Подскажите пожалуйста, какой утилитой, через консоль, можно получить текущую нагрузку на сеть сервера? Пробовал множество различных утилит на подобии nload, но они все выводят статистику динамически, а нужно разово получить цифру и все. То есть к примеру выполнить команду и получить число 350mbit/s ( ну или в битах, не важно).


Собственно для чего это нужно. Есть 2 небольших файловых сервера, на которых файлы продублированы, и есть третий сервер на котором работает сайт. Есть желание сделать автоматическую балансировку нагрузки между файловыми серверами. Пришла в голову следующая идея. Cсылку на скачивание файла для пользователя генерирует php скрипт работающий на сервере сайта, так вот из php, с помощью библиотеки для работы с ssh, подключаться к 1 файловому серверу по ssh, выполнять команду для получения текущей нагрузки на сеть сервера, после чего подключаться ко второму серверу по ssh и так же получить нагрузку на сеть, после чего сравнить эти 2 числа, и на каком сервере нагрузка будет меньше, на тот сервер отдавать пользователю ссылку на файл. И вот проблема в том что не получается получить текущую нагрузку на сеть сервера, так как все утилиты выводят информацию динамически. а с такими данными при подключении к ssh из под php работать не возможно, нужен статический вывод информации в консоль.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#1
bwm-ng
Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
B1
На сайте с 16.11.2015
Offline
62
#2
Mik Foxi #:
bwm-ng

Так она же тоже выводит статистику динамически в режиме реального времени, посмотрел документацию к ней, и что то не увидел опции для единоразового вывода информации, или плохо смотрел?

frealy121212
На сайте с 20.11.2013
Offline
102
#3
BK201 #:

Так она же тоже выводит статистику динамически в режиме реального времени, посмотрел документацию к ней, и что то не увидел опции для единоразового вывода информации, или плохо смотрел?

невозможно вывести "разово", этот параметр собрать нужно.
можете разово только получить количество переданных байт на текущий момент, сделать тоже самое через секунду.

получите 2 значения

2 - 1 = количество переданных байт за секунду последнюю секунду, переводите в мегабиты, терабиты и что угодно.

входящий
cat /sys/class/net/eth0/statistics/rx_packets
исходящий
cat /sys/class/net/eth0/statistics/tx_packets

получаем, считаем.

lealhost
На сайте с 07.06.2014
Offline
136
#4
frealy121212 #:
2 - 1 = количество переданных байт за секунду последнюю секунду, переводите в мегабиты, терабиты и что угодно.

получаем, считаем.


Только rx_bytes и tx_bytes вместо пакетов.

B1
На сайте с 16.11.2015
Offline
62
#5

Да получилось, спасибо.

#!/bin/bash
t1=$(cat /sys/class/net/eno1/statistics/tx_bytes)
sleep 1
t2=$(cat /sys/class/net/eno1/statistics/tx_bytes)

b=$((t2-t1))
echo $((b/1024/1024*8))
Д
На сайте с 01.04.2012
Offline
134
#6
iptraf-ng и интерфейс выбираете и смотрите
VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду VESNA2024
frealy121212
На сайте с 20.11.2013
Offline
102
#7
lealhost #:


Только rx_bytes и tx_bytes вместо пакетов.

да, ошибочка

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий