Сбор статистики по трафику на интерфейсе для соблюдения 1:4
Модератор: weec
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Сбор статистики по трафику на интерфейсе для соблюдения 1:4
Нужна помощь комьюнити, подобным не занималась, посему, если кто-то что-то такое делал, подскажите пожалуйста
Собственно задача: сделать скрипт, который будет отображать сколько получено трафика по сетевому интерфейсу, сколько передано (запускаться будет по крону).
У меня сервер размещен в дата-центре, где для "бесплатного" трафика нужно соблюдать соотношение 1:4 (это караван да, и у них такое еще есть).
Так вот я хочу, запускать этот скрипт допустим раз в полчаса и если увижу, что соотношение не верное, то этот скрипт будет запускать другой (который у меня уже написан), который закачивает файлы на нужный (недостающий) объем гб на яндекс.диск.
Собственно весь вопрос в том, как получать данные с сетевого интерфейса - сколько скачано \ сколько закачено (чтобы сравнить исходящий и входящий трафик).
Есть ли возможность как-то получить эти чиста с помощью скрипта на ssh ? или нужно ставить какое-то доп. ПО, если да, какое и собственно как получить данные?
Жду Вашей помощи, вдруг кто-то уже решал подобную задачу, Спасибо за помощь!
Собственно задача: сделать скрипт, который будет отображать сколько получено трафика по сетевому интерфейсу, сколько передано (запускаться будет по крону).
У меня сервер размещен в дата-центре, где для "бесплатного" трафика нужно соблюдать соотношение 1:4 (это караван да, и у них такое еще есть).
Так вот я хочу, запускать этот скрипт допустим раз в полчаса и если увижу, что соотношение не верное, то этот скрипт будет запускать другой (который у меня уже написан), который закачивает файлы на нужный (недостающий) объем гб на яндекс.диск.
Собственно весь вопрос в том, как получать данные с сетевого интерфейса - сколько скачано \ сколько закачено (чтобы сравнить исходящий и входящий трафик).
Есть ли возможность как-то получить эти чиста с помощью скрипта на ssh ? или нужно ставить какое-то доп. ПО, если да, какое и собственно как получить данные?
Жду Вашей помощи, вдруг кто-то уже решал подобную задачу, Спасибо за помощь!
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35456
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
сменить датацентр на нормальный?
--
а вобще, count в файлволл да сравнивать.
на шелле можно накидать в десяток строк
--
а вобще, count в файлволл да сравнивать.
на шелле можно накидать в десяток строк
Убей их всех! Бог потом рассортирует...
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
не вариант к сожалению, вообще конечно странно почему караван до сих порт такое делает, учитывая что конторка-то не маленькая.
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2011-09-22 13:48:47
Re: Сбор статистики по трафику на интерфейсе для соблюдения
Вот наверное как-то так:
Для платформы Linux.
Должны быть установлены программы: iproute2 и bc, в Slackware всё в базе.
Код: Выделить всё
#!/bin/bash
IFACE="eth0"
echo "Network statistic on interface $IFACE"
for i in "RX:" "TX:"
do
BYTES="$(ip -s link show "$IFACE" | grep -A 1 "$i" | grep -v "$i" | awk '{print $1}')"
KBYTES="$(echo "$BYTES / 1024" | bc)"
echo "$i $KBYTES KBytes"
done
Должны быть установлены программы: iproute2 и bc, в Slackware всё в базе.
-
- ст. лейтенант
- Сообщения: 1325
- Зарегистрирован: 2008-07-27 17:11:30
- Откуда: Москва
Re: Сбор статистики по трафику на интерфейсе для соблюдения
почему странно? они играют по правилам, которые им диктуют поставщики аплинковстранно почему караван до сих порт такое делает
не только караван так делает, еще как минимум агава
да и часто это лучше простого ограничения в 1ТБ и далее по 7-15 руб за ГБ
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2011-09-22 13:48:47
Re: Сбор статистики по трафику на интерфейсе для соблюдения
Немного дописал, осталось вставить программу которую надо выполнять в определенном месте.
Код: Выделить всё
#!/bin/bash
IFACE="eth0" # Interface for check
RXBYTES="" # Recived bytes (DOWNLOAD)
TXBYTES="" # Trancived bytes (UPLOAD)
QUADRX="" # 4 x Trancived value
echo "Network statistic on interface $IFACE"
for i in "RX" "TX"
do
extval=$i
i="$i:"
BYTES="$(ip -s link show "$IFACE" | grep -A 1 "$i" | grep -v "$i" | awk '{print $1}')"
if [ $extval == "RX" ]
then
RXBYTES="$BYTES"
else
TXBYTES="$BYTES"
fi
KBYTES="$(echo "$BYTES / 1024" | bc)"
echo "$i $KBYTES KBytes"
done
logger() {
MSG="$1"
echo "$(date +%F--\(%H-%M-%S\)) - $MSG"
}
corrector() {
STAT=""
case "$1" in
"0")
STAT="NORMAL"
;;
"1")
STAT="NEEDDOWNLOAD"
#
# Wget some file
#
;;
"2")
STAT="NEEDUPLOAD"
#
# Upload some file
#
;;
esac
}
QUADRX="$(echo "$RXBYTES * 4"| bc)"
if [ $QUADRX -eq $TXBYTES ]
then
logger "For now ratio is 1:4 (RX:TX)"
exit 0
fi
if [ $QUADRX -lt $TXBYTES ]
then
BALANCE="$(echo "$TXBYTES - $QUADRX" | bc)"
logger "You need DOWNLOAD: $BALANCE bytes, for ratio 1:4"
corrector "1"
fi
if [ $QUADRX -gt $TXBYTES ]
then
BALANCE="$(echo "$QUADRX - $TXBYTES" | bc)"
logger "You need UPLOAD: $BALANCE bytes, for ration 1:4"
corrector "2"
fi
- Вложения
-
- check1-4.txt
- (1.15 КБ) 34 скачивания
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
спасибо! сейчас попробуюStreamThreader писал(а):Вот наверное как-то так:
Для платформы Linux.Код: Выделить всё
#!/bin/bash IFACE="eth0" echo "Network statistic on interface $IFACE" for i in "RX:" "TX:" do BYTES="$(ip -s link show "$IFACE" | grep -A 1 "$i" | grep -v "$i" | awk '{print $1}')" KBYTES="$(echo "$BYTES / 1024" | bc)" echo "$i $KBYTES KBytes" done
Должны быть установлены программы: iproute2 и bc, в Slackware всё в базе.
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
огромнейшее спасибо буду тестироватьStreamThreader писал(а):Немного дописал, осталось вставить программу которую надо выполнять в определенном месте.
Код: Выделить всё
#!/bin/bash IFACE="eth0" # Interface for check RXBYTES="" # Recived bytes (DOWNLOAD) TXBYTES="" # Trancived bytes (UPLOAD) QUADRX="" # 4 x Trancived value echo "Network statistic on interface $IFACE" for i in "RX" "TX" do extval=$i i="$i:" BYTES="$(ip -s link show "$IFACE" | grep -A 1 "$i" | grep -v "$i" | awk '{print $1}')" if [ $extval == "RX" ] then RXBYTES="$BYTES" else TXBYTES="$BYTES" fi KBYTES="$(echo "$BYTES / 1024" | bc)" echo "$i $KBYTES KBytes" done logger() { MSG="$1" echo "$(date +%F--\(%H-%M-%S\)) - $MSG" } corrector() { STAT="" case "$1" in "0") STAT="NORMAL" ;; "1") STAT="NEEDDOWNLOAD" # # Wget some file # ;; "2") STAT="NEEDUPLOAD" # # Upload some file # ;; esac } QUADRX="$(echo "$RXBYTES * 4"| bc)" if [ $QUADRX -eq $TXBYTES ] then logger "For now ratio is 1:4 (RX:TX)" exit 0 fi if [ $QUADRX -lt $TXBYTES ] then BALANCE="$(echo "$TXBYTES - $QUADRX" | bc)" logger "You need DOWNLOAD: $BALANCE bytes, for ratio 1:4" corrector "1" fi if [ $QUADRX -gt $TXBYTES ] then BALANCE="$(echo "$QUADRX - $TXBYTES" | bc)" logger "You need UPLOAD: $BALANCE bytes, for ration 1:4" corrector "2" fi
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
p.s. а за конкретную дату можно получить статистику?
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2011-09-22 13:48:47
Re: Сбор статистики по трафику на интерфейсе для соблюдения
Конечно, скрипт в начале сообщает дату, можно делать Grep за дату, а все сообщения писать в файл..scu писал(а):p.s. а за конкретную дату можно получить статистику?
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2011-09-22 13:48:47
Re: Сбор статистики по трафику на интерфейсе для соблюдения
Хотя бы, так. Можно добавить ещё пустую строку в начале нового дня.
Код: Выделить всё
#!/bin/bash
IFACE="eth0" # Interface for check
RXBYTES="" # Recived bytes (DOWNLOAD)
TXBYTES="" # Trancived bytes (UPLOAD)
QUADRX="" # 4 x Trancived value
LOGFILE="/var/log/if-stat.log" # Log file
# echo "Network statistic on interface $IFACE"
for i in "RX" "TX"
do
extval=$i
i="$i:"
BYTES="$(ip -s link show "$IFACE" | grep -A 1 "$i" | grep -v "$i" | awk '{print $1}')"
if [ $extval == "RX" ]
then
RXBYTES="$BYTES"
else
TXBYTES="$BYTES"
fi
# KBYTES="$(echo "$BYTES / 1024" | bc)"
# echo "$i $KBYTES KBytes"
done
logger() {
MSG="$1"
echo "$(date +%F--\(%H-%M-%S\)) - $MSG" >> $LOGFILE
}
corrector() {
STAT=""
case "$1" in
"0")
STAT="NORMAL"
;;
"1")
STAT="NEEDDOWNLOAD"
#
# Wget some file
#
;;
"2")
STAT="NEEDUPLOAD"
#
# Upload some file
#
;;
esac
}
QUADRX="$(echo "$RXBYTES * 4"| bc)"
if [ $QUADRX -eq $TXBYTES ]
then
logger "For now ratio is 1:4 (RX:TX)"
exit 0
fi
if [ $QUADRX -lt $TXBYTES ]
then
BALANCE="$(echo "$TXBYTES - $QUADRX" | bc)"
logger "You need DOWNLOAD: $BALANCE bytes, for ratio 1:4"
corrector "1"
fi
if [ $QUADRX -gt $TXBYTES ]
then
BALANCE="$(echo "$QUADRX - $TXBYTES" | bc)"
logger "You need UPLOAD: $BALANCE bytes, for ration 1:4"
corrector "2"
fi
- Вложения
-
- check1-4.txt
- (1.21 КБ) 30 скачиваний
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
я видимо как-то невнимательно смотрю, не вижу разницы с предыдущим вариантом, где выборка даты?
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
пытаюсь проверить корректность
из личного кабинета
(мб)
по скрипту:
что-то не сходится
у них там конечно статистика не в минуту в минуту, если не ошибаюсь раз в полчаса делается, но цифры как-то уж больно различны.
из личного кабинета
Код: Выделить всё
22 окт. 2014
входящий исходящий
1,87 34,09
Код: Выделить всё
Ратио: 1.87*4 - 34.09 / 1024 / 1024 = -26.61 (в запасе)
Код: Выделить всё
Network statistic on interface eth1
RX: 2831523 KBytes ( 2765 Mb )
TX: 2648550 KBytes ( 2586 Mb )
2014-10-22--(02-03-43) - You need UPLOAD: 8885804296 bytes (8557 Mb), for ration 1:4
uploading
у них там конечно статистика не в минуту в минуту, если не ошибаюсь раз в полчаса делается, но цифры как-то уж больно различны.
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2011-09-22 13:48:47
Re: Сбор статистики по трафику на интерфейсе для соблюдения
Интересно, статистика совсем разная )).
Может у вас аптайм?
Берётся статистика за время работы системы, и при перезагрузке обнуляется.
Если нужна не зависимость от аптайма, то нужно сбрасывать значения во временную базу.
Может у вас аптайм?
Берётся статистика за время работы системы, и при перезагрузке обнуляется.
Если нужна не зависимость от аптайма, то нужно сбрасывать значения во временную базу.
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
нет, он не рестартуется. аптайм несколько лет
у них там она разделяется (типо локальный трафик, российский и международный), но итог я так понимаю считается таки по общему:
это входящий и исходящий для
Локальный, Мб Российский, Мб Зарубежный, Мб Общий, Мб
22 окт. 2014 0,00 0,02 2,51 73,95 4,38 60,93 6,90 134,90
у них там она разделяется (типо локальный трафик, российский и международный), но итог я так понимаю считается таки по общему:
это входящий и исходящий для
Локальный, Мб Российский, Мб Зарубежный, Мб Общий, Мб
22 окт. 2014 0,00 0,02 2,51 73,95 4,38 60,93 6,90 134,90
-
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-05-26 11:25:08
- Контактная информация:
Re: Сбор статистики по трафику на интерфейсе для соблюдения
и что по поводу выборки по дате ?