Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

watchdog [2018/05/30 16:53]
nightfly
watchdog [2018/08/21 12:26] (текущий)
nightfly
Строка 250: Строка 250:
 #!/bin/sh #!/bin/sh
 /usr/bin/netstat -w 1 -I bridge0  -q 1 | /usr/bin/tail -n 1 | /usr/bin/awk {'print $1'} /usr/bin/netstat -w 1 -I bridge0  -q 1 | /usr/bin/tail -n 1 | /usr/bin/awk {'print $1'}
 +</file>
 +
 +==== Мониторинг померших свитчей ====
 +
 +<file php siwtchmon>
 +#!/usr/local/bin/php
 +<?php
 +
 +///////////////////////////////////////
 +//                                   //
 +//    CONFIG SECTION                 //
 +//                                   //
 +///////////////////////////////////////          
 +
 +//mysql settings
 +$db_host='127.0.0.1';
 +$db_database='stg';
 +$db_login='root';
 +$db_password='yourmysqlpassword';
 +$db_config['character']='utf8';
 +
 +////////////// Main code section ///////////
 +
 +
 +//parse all online users speed data
 +
 +function simple_queryall($query) {
 +    global $db_host, $db_database, $db_login, $db_password;
 +    $result=array();
 +    $dblink=mysqli_connect($db_host, $db_login, $db_password,$db_database);
 +    mysqli_query ($dblink,"set character_set_client='utf8'"); 
 + mysqli_query ($dblink,"set character_set_results='utf8'"); 
 + mysqli_query ($dblink,"set collation_connection='utf8_general_ci'");
 +    $queried = mysqli_query($dblink,$query);
 +    while($row = mysqli_fetch_assoc($queried)) {
 +    $result[]= $row;
 +    }
 +    mysqli_close($dblink);
 +    return($result);
 +}
 +
 +function ispos($string,$search) {
 +if (strpos($string,$search)===false) {
 +return(false);
 +} else {
 +return(true);
 +}
 +}
 +
 +if ($argc>=2) {
 +$option=$argv[1];
 +$alldead=simple_queryall("SELECT `value` from `ubstorage` WHERE `key`='SWDEAD'");
 +
 +//All dead switches
 +if ($option=='all') {
 +if (!empty($alldead)) {
 +    $count=0;
 + foreach ($alldead as $io=>$each) {
 + $dead=unserialize($each['value']);
 + if (!empty($dead)) {
 + print('Ой, тут якісь свічі здехли:'."\n");
 + foreach($dead as $ip=>$eachdead) {
 + print($ip.' - '.$eachdead.' '."\n");
 +                $count++;
 + }
 +        print("\n\n");
 +        print('Всього '.$count.' штук скопитилось :(');    
 + } else {
 + print('Всьо зі всіма свічами добре - гарантую');
 + }
 +
 + }
 +}
 +}
 +
 +//Z labeled switches
 +if ($option=='z')  {
 +    //only Z devices
 +    if (!empty($alldead)) {
 +    $zdeadcount=0;
 +    $zydead='';
 +    foreach ($alldead as $io=>$each) {
 +        $dead=unserialize($each['value']);
 +        if (!empty($dead)) {
 +            foreach($dead as $ip=>$eachdead) {
 +                if (ispos($eachdead,'z')) {
 +                $zydead.=$eachdead.' ';
 +                $zdeadcount++;
 +                }
 +            }
 +            if ($zdeadcount==0) {
 +                print('Всьо зі всіма зухелями добре');
 +            } else {
 +                print('здохли: '.$zydead);
 +
 +            }
 +        } else {
 +            print('Всьо зі всіма зухелями добре');
 +        }
 +        
 +    }
 +}
 +}
 +
 +//human readable counters
 +if ($option=='count') {
 +if (!empty($alldead)) {
 +    $count=0;
 +    foreach ($alldead as $io=>$each) {
 +        $dead=unserialize($each['value']);
 +        if (!empty($dead)) {
 +            foreach($dead as $ip=>$eachdead) {
 +                $count++;
 +            }
 +        print('Всього '.$count.' штук скопитилось :(');    
 +        } else {
 +            print('Всьо зі всіма свічами добре - гарантую');
 +        }
 +        
 +    }
 +}
 +}
 +
 +//counters
 +if ($option=='countraw') {
 +if (!empty($alldead)) {
 +    $count=0;
 +    foreach ($alldead as $io=>$each) {
 +        $dead=unserialize($each['value']);
 +        if (!empty($dead)) {
 +            foreach($dead as $ip=>$eachdead) {
 +                $count++;
 +            }
 +        print($count);    
 +        } else {
 +            print('0');
 +        }
 +        
 +    }
 +}
 +}
 +
 +
 +} else {
 +    print('Usage: switchmon [option]'."\n");
 +    print('Available options: count/z/all/countraw'."\n");
 +}
 +
 +
 +?>
 </file> </file>
watchdog.txt · Последние изменения: 2018/08/21 12:26 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki