Автоматическая «прибивка» пользователей к портам устройств в LanBilling 2 путем опроса MAC свичей

Дано:

1) LanBilling в которой ведется журнал авторизации пользователей по логину с указанием MAC адреса устройства с которого прошла авторизация.

2) В LanBilling нет привязки пользователя ни к порту, ни к сетевому устройству.

Задача: опросить все сетевые устройства, узнать все MAC адреса и порты свичей на которых «висят» пользователи

Решение:

— получаем у свичей информацию о MAC адресах на портах
— ищем этот MAC  в истории авторизации LanBilling — получаем учетку
— «прибиваем» эту учетку в LanBilling к конкретному устройству, к конкретному порту.

Вуаля! Теперь когда пользователь звонит «ничего не работает», мы знаем на каком свиче и на каком порту он сидит. Ура товарищи!

Читать далее Автоматическая «прибивка» пользователей к портам устройств в LanBilling 2 путем опроса MAC свичей

Использование Pchart для построения графиков на PHP

Классы Pchart представляют очень простой способ отрисовки графиков на PHP. Кроме того, в комплекте поставки идет «песочница», где можно визуально настроить параметры и посмотреть какой код нужно использовать для его построения,ну и собственно посмотреть как будет выглядеть примерно ваш график.

Вот пример графика

Снимок экрана от 2014-08-26 12:32:35

Вот пример кода

include("../../../../class/pchart/pData.class.php"); 
include("../../../../class/pchart/pDraw.class.php"); 
include("../../../../class/pchart/pImage.class.php"); 
$myData = new pData();   

while($date <= $dtend){
    $kof=1;
    $date = date('Y-m-d', strtotime($date.' + '.$kof.' days')); 
    $ruser=GetAllStatByDate($date,$grp,$agnt,$lb);
    $activeusers=$ruser["activeusers"];
    $allaccountsb10=$ruser["allaccountsb10"];
    $allaccountsb1=$ruser["allaccountsb1"];
    $atherblock=$ruser["atherblock"];
    $allaccounts=$ruser["allaccounts"];
// добавляем данные
    $myData->addPoints($activeusers,"activeusers");
    $myData->addPoints($allaccountsb10,"allaccountsb10");
    $myData->addPoints($allaccountsb1,"allaccountsb1");
    $myData->addPoints($allaccounts,"allaccounts");
    $myData->addPoints($date,"Month");
};
// синонимы
$myData->setSerieDescription("activeusers","Активных учеток");
$myData->setSerieDescription("allaccountsb10","Блокировка 10");
$myData->setSerieDescription("allaccountsb1","Блокировка по балансу");
$myData->setSerieDescription("allaccounts","Всего учеток");
// что в низу
$myData->setAbscissa("Month");
// сто слева
$myData->setAxisUnit(1," Чел");

//задаем цвета графиков
$serieSettings = array("R"=>51,"G"=>255,"B"=>0,"Alpha"=>150);
$myData->setPalette("activeusers",$serieSettings);

$serieSettings = array("R"=>255,"G"=>38,"B"=>0,"Alpha"=>150);
$myData->setPalette("allaccountsb10",$serieSettings);

$serieSettings = array("R"=>255,"G"=>200,"B"=>0,"Alpha"=>150);
$myData->setPalette("allaccountsb1",$serieSettings);

$serieSettings = array("R"=>2,"G"=>11,"B"=>1,"Alpha"=>150);
$myData->setPalette("allaccounts",$serieSettings);



$myPicture = new pImage(1250,500,$myData); // <-- Размер холста

$Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50); 
$myPicture->drawGradientArea(0,0,1250,500,DIRECTION_VERTICAL,$Settings);  
  
$myPicture->setFontProperties(array("FontName"=>"../../../../fonts/calibri.ttf","FontSize"=>8));
$myPicture->setGraphArea(50,20,1230,480); // <-- Размещение графика на холсте
$myPicture->drawScale();
$myPicture->drawBestFit(array("Alpha"=>40)); // <-- Прямая статистики

$myPicture->drawSplineChart();
$myPicture->drawPlotChart(array("DisplayValues"=>TRUE,"PlotBorder"=>TRUE,"BorderSize"=>0,"Surrounding"=>-60,"BorderAlpha"=>50)); // <-- Точки на графике
$myPicture->drawLegend(700,10,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));// <-- Размещение легенды


$unique = date("Y.m.d_H.i.s");
$gsFilename_Traffic = "traffic_".$unique.".png";

$myPicture->Render('../../../../files/'.$gsFilename_Traffic);
echo "<img src='files/$gsFilename_Traffic'>";

Быстрый доступ к основным командам в Linux

Я человек ленивый. А потому часто используя одни и те-же команды в консоли Linux, сделал себе диалоговое окошко с меню, отображаемое при помощи bash, которое помогает мне сократить время на вспоминание что где когда и зачем. А помогла мне в этом утилита dialog.

Снимок экрана от 2014-08-20 17:53:25

Вот пример bash скрипта, который рисует нечто подобное:

#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15

$DIALOG --clear --title "Выбор терминала для работы" \
        --menu "Выберите терминал:" 40 51 40 \
        "This"  "Остаться дома" \
        "Chaos"  "billing.wedwedq.ru" \
        "Athena"  "billing.yefwerfe.ru" \
        "Ares"  "billing.wefdwe.tv" \
	"---------"	"------"\
        "Eros" "Сервер доступа Шексна,Хохлово(Ш)" \
        "Helios" "Сервер доступа Чагода (Ш)" \
        "Nike" "Сервер доступа Кадуй (Ш)" \
        "Artemis" "Сервер доступа Лоста (Ш)" \
        "Poseidon" "Сервер доступа Вытегра (Ш)"  2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in
  0)
    if [ $choice = "This" ]; then
     clear
     exit
    fi

    if [ $choice = "Ares" ]; then
     ssh billing.qwefqwe.tv -l логин
    fi

    if [ $choice = "Helios" ]; then
     ssh 121.237.158.1 -l логин
    fi

    if [ $choice = "Nike" ]; then
     ssh 127.27.138.1 -l логин
    fi

    if [ $choice = "Artemis" ]; then
     ssh 122.144.337.120 -l логин
    fi;;
  1)
    echo "Отказ от ввода.";;
  255)
    echo "Нажата клавиша ESC.";;

Чтиво за последний месяц…

  • item1236476219_geya_almanah_nauchnoj_fantastiki_m_mysl_1990_1Гея — альманах научной фантастики
  • Краткая история почти всего. Билл Брайсон
  • Вся стальная крыса. Том 1,2 Гарри Гаррисон
  • Многорукий бог далайна. Свет в окошке. Святослав Логинов
  • Визиты: осенние визиты. Спектр. Кредо. Сергей Лукьяненко

Рекомендую к прочтению: Свет в окошке, Стальная крыса, Краткая история почти всего. Все остальное читабельно, но не так захватывает.