Проверка канала - FreeBSD / Статьи, заметки на тему администрирования Unix систем.
Unixnotes.ru - записная книжка Unix-администратора
www.unixnotes.ru > FreeBSD > Проверка канала
Меню
Статьи
Статистика

Хостов сегодня: 10

Хитов сегодня: 37

Статей: 29


Хочу найти свадебные платья продам здесь.

Проверка канала

Начальство захотело знать качество внешнего канала с более-менее подробной статистикой. Сколько потерь до первого шлюза, ya.ru за определенный промежуток времени. Решил поднять для начала на домашнем компутере, посмотреть как оно будет работать и будет ли вообще :)

Скрипт будет пинговать заданный адрес 30ю пакетами каждую минуту, а результаты складировать в базу mysql. Рисовать решил на perl, всё таки он побыстрее простого sh должен быть. Выполняться будет по крону каждую минуту. Структуру базы пока не особо продумал, в частности типы полей, но пока работает. Оптимизацией попозже займусь.

А имея заполненную БД, можно уже нарисовать веб-морду например. Или графики к кактусу. Графики мне больше нравятся, ибо визуально сразу видно когда падало, а с веб-мордой еще задавать входящие параметры, ждать результат обработки запросов...муторно вощем. Разве что показать статистику насяльнику, не залазяя в сам mysql :)

Вообщем вот мой скриптик

#!/usr/bin/perl
#ping statistics for our inet-canals
#ver 0.01 by maf

#date vars
$year=`date '+%Y'`;
$year=substr($year,0,4);
$month=`date '+%m'`;
$month=substr($month,0,2);
$day=`date '+%d'`;
$day=substr($day,0,2);
$hour=`date '+%H'`;
$hour=substr($hour,0,2);
$minute=`date '+%M'`;
$minute=substr($minute,0,2);
$sec=`date '+%S'`;
$sec=substr($sec,0,2);
#vars
$lockfile="/tmp/lockfile.gw_".$year."_".$month."_".$day."_".$hour."_".$minute;
$tmp="/tmp/tmp.gw_".$year."_".$month."_".$day."_".$hour."_".$minute."_".$sec;
$dt=$year . "-" . $month . "-" . $day . " " . $hour . ":" . $minute . ":" . $sec;
#---db settings---
$host='localhost';
$user='pingpong';
$pass='pass4ping';
$db='ping';
$table='ping_ya';
#---ping properities---
$quan='30'; #quantity
$inet_host='ya.ru';
if(-e "$lockfile")
{
print "$lockfile is already exist, check it. I'm quit.";
exit();
}
`touch $lockfile`;
use Mysql;
use Time::localtime;
$year=localtime->year() + 1900;
$dbc = Mysql->Connect($host,$db,$user,$pass);
if($dbc)
    {
        $sql="CREATE TABLE IF NOT EXISTS `ping_ya_" . $year . "_" .$month . "` \
        (`id` INT(16) NOT NULL auto_increment,
        `transm_pck` smallint(2) NOT NULL,
        `recieve_pck` smallint(2) NOT NULL,
        `avg` char(5) NOT NULL,
        `loss` char(4) NOT NULL,
        `date` DATETIME NOT NULL, PRIMARY KEY(`id`)) ENGINE=MyISAM";
    }
    else
    {
    print "Could not connect to databse!";
    }
    $dbc->Query("$sql");
`ping -t $quan -q $inet_host > $tmp`;
open(png, "cat $tmp | grep -e loss|") or die || "cannot get $tmp";
while()
{
($p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9) = split(' ');
$p7 =~ s/%//g;
}
open(pckts, "cat $tmp | grep -e round-trip|");
while()
{
($s1, $s2, $s3, $s4, $s5, $s6, $s7) = split ('/');
}
$query="INSERT INTO `ping_ya_" . $year . "_" . $month . "`
(`transm_pck`, `recieve_pck`, `avg`, `loss`, `date`)
VALUES('" . $p1 . "', '" . $p4 . "','" . $s5 . "','" . $p7 . "','" . $dt . "')";
$dbc->Query("$query") or die $Mysql::db_errstr;
`rm $lockfile`;
`rm $tmp`;

Первый запуск скрипт создает табличкуи начинает собирать стату. В базе будет время отклика, % потерь.

Выглядит конечно сыровато, но работает. Дорабатывать буду потом.


Добавлено: 2009-07-21      Просмотров: 489      Источник: www.unixnotes.ru


Комментарии к статье "FreeBSD / Проверка канала":

Имя:

E-Mail

Комментирвоать

Какой нынче год?

Новое:

microdc2 консольный клиент DC++

Потребовалось раздавать юзерам сети контент с фтп сервака не только с помощью самого ftp сервера, но и через DC++ протокол.

Added: 2009-08-25


FreeBSD net-snmpd

Очень много возможностей Cacti работают только при работающем демоне SNMP. Загрузка сетевых карт, мониторинг дискового пространства, загруженность процессора/памяти и много

Added: 2009-08-13


Копирование файла с фтп

Начались проблемы с нехваткой места на биллинг сервере. Раньше все бекапы хранились на нём же, просто на другом диске. Основное

Added: 2009-08-08




НАШИ ДРУЗЬЯ
Последняя Распродажа Года: кашкай 2. Nissan Qashqai -тест драйв.
Продвижение сайта в поисковиках - поисковое продвижение. Оптимизация и раскрутка сайтов.
Как украсить ванну без ремонта - чугунные ванны. Дом, Ремонт, Обустройство.
Праздников организация, от компании нашей
Добрый день! Посоветуйте, пожалуйста, фирму где можно купить 1с бухгалтерию для УСН.
аккумуляторы csb, nord.