Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.41 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # graphs creator, version 1
  4.  
  5.  
  6. ###----CONFIG---###
  7.  
  8. MyName="mon_graph"
  9.  
  10. # DB connection
  11. MysqlPath=`which mysql`
  12. MysqlHost="10.90.0.6"
  13. MysqlDB="monbase"
  14. MysqlUser="monbase"
  15. MysqlPassword="qwertyqazwsx"
  16.  
  17. # checking if script enabled
  18. Enabled=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT enabled FROM modules WHERE name = '$MyName'" 2>>mon_graph.error`
  19. if [ $Enabled = 0 ]; then exit 0; else
  20.  
  21. # reading all settings from DB
  22. Settings=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT param, value FROM config WHERE module = '$MyName'" 2>>mon_graph.error`
  23.  
  24. DebugLevel=`echo "$Settings" | grep -w "DebugLevel" | cut -f2`
  25. WorkDir=`echo "$Settings" | grep -w "WorkDir" | cut -f2`
  26. ConfigDir=`echo "$Settings" | grep -w "ConfigDir" | cut -f2`
  27. MRTGPath=`echo "$Settings" | grep -w "MRTGPath" | cut -f2`
  28. IPv6=`echo "$Settings" | grep -w "IPv6" | cut -f2`
  29. StatusBasedGraph=`echo "$Settings" | grep -w "StatusBasedGraph" | cut -f2`
  30.  
  31. ###---GRAPH---###
  32.  
  33. cd $WorkDir
  34.  
  35. # getting all hosts from DB
  36. if [ $DebugLevel = 1 ]; then echo "mysql > hosts"; fi
  37.  
  38. if [ $StatusBasedGraph = 1 ]; then
  39.     AllHosts=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword lb_base -e "SELECT ip, id FROM my_device_list WHERE graph = '1' AND status = '1'" 2>>mon_graph.error`
  40. else
  41.     AllHosts=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword lb_base -e "SELECT ip, id FROM my_device_list WHERE graph = '1'" 2>>mon_graph.error`
  42. fi
  43.  
  44. for HostID in `echo "$AllHosts" | cut -f2 2>>mon_graph.error`
  45.     do
  46.         if [ $DebugLevel = 1 ]; then echo "processing $HostID..."; fi
  47.         HostIP=`echo "$AllHosts" | grep -w "$HostID" | cut -f1 2>>mon_graph.error`
  48.         # getting all graph settings for HostID
  49.         GraphOptions=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT graphid, graphdir, target, options, type FROM graph WHERE id = '$HostID'" 2>>mon_graph.error`
  50.         #echo "$GraphOptions"
  51.         # check if there are settings
  52.         if [ -z "$GraphOptions" ]; then
  53.             if [ $DebugLevel = 1 ]; then echo "no graph options for $HostID"; fi
  54.         else
  55.             # clearing current config
  56.             echo -n > $ConfigDir/$HostID.conf
  57.             wdw=0
  58.             for GraphID in `echo "$GraphOptions" | cut -f1 2>>mon_graph.error`
  59.                 do
  60.                     #echo $GraphID
  61.                     if [ $DebugLevel = 1 ]; then echo -n " -- processing $GraphID... "; fi
  62.                     # write config based on current settings
  63.                     GraphDir=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f2 2>>mon_graph.error`
  64.                     GraphTarget=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f3 2>>mon_graph.error`
  65.                     GraphOpt=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f4 2>>mon_graph.error`
  66.                     GraphType=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f5 2>>mon_graph.error`
  67.                     if [ $wdw = 0 ]; then
  68.                         echo "WorkDir: $GraphDir" >> $ConfigDir/$HostID.conf
  69.                         echo "EnableIPv6: $IPv6" >> $ConfigDir/$HostID.conf
  70.                         echo "" >> $ConfigDir/$HostID.conf
  71.                         wdw=1
  72.                     fi
  73.                     echo "Target[$HostID-$GraphID]: $GraphTarget" >> $ConfigDir/$HostID.conf
  74.                     echo "Options[$HostID-$GraphID]: $GraphOpt" >> $ConfigDir/$HostID.conf
  75.                     echo "Title[$HostID-$GraphID]: whatever" >> $ConfigDir/$HostID.conf
  76.                     case "$GraphType" in
  77.                         speed)
  78.                             echo "MaxBytes[$HostID-$GraphID]: 12500000" >> $ConfigDir/$HostID.conf
  79.                             echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
  80.                             echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
  81.                         ;;
  82.                         pinglat)
  83.                             echo "MaxBytes[$HostID-$GraphID]: 1000" >> $ConfigDir/$HostID.conf
  84.                             echo "AbsMax[$HostID-$GraphID]: 3000" >> $ConfigDir/$HostID.conf
  85.                             echo "YLegend[$HostID-$GraphID]: ping time (ms)" >> $ConfigDir/$HostID.conf
  86.                             echo "ShortLegend[$HostID-$GraphID]: ms" >> $ConfigDir/$HostID.conf
  87.                             echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
  88.                             echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
  89.                         ;;
  90.                         pinglos)
  91.                             echo "MaxBytes[$HostID-$GraphID]: 100" >> $ConfigDir/$HostID.conf
  92.                             echo "AbsMax[$HostID-$GraphID]: 101" >> $ConfigDir/$HostID.conf
  93.                             echo "YLegend[$HostID-$GraphID]: % packet loss" >> $ConfigDir/$HostID.conf
  94.                             echo "ShortLegend[$HostID-$GraphID]: %" >> $ConfigDir/$HostID.conf
  95.                             echo "WithPeak[$HostID-$GraphID]: ymwd" >> $ConfigDir/$HostID.conf
  96.                             echo "Unscaled[$HostID-$GraphID]: dwmy" >> $ConfigDir/$HostID.conf
  97.                             echo "Colours[$HostID-$GraphID]: Col1#EB233B,Col2#EB233B,Col3#EB233B,Col4#EB233B" >> $ConfigDir/$HostID.conf
  98.                             echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
  99.                             echo "YSize[$HostID-$GraphID]: 700" >> $ConfigDir/$HostID.conf
  100.                         ;;
  101.                         *)
  102.                             echo "MaxBytes[$HostID-$GraphID]: 12500000" >> $ConfigDir/$HostID.conf
  103.                             echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
  104.                             echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
  105.                         ;;
  106.                     esac
  107.                     echo "" >> $ConfigDir/$HostID.conf
  108.                     # checking if GraphDir exists
  109.                     # if not - creating it
  110.                     if [ -d "$GraphDir" ]; then
  111.                         if [ $DebugLevel = 1 ]; then echo "okay"; fi
  112.                     else
  113.                         mkdir -p $GraphDir 2>>mon_graph.error
  114.                         if [ $DebugLevel = 1 ]; then echo "okay"; fi
  115.                     fi
  116.             done
  117.             # run mrtg
  118.             env LANG=C $MRTGPath $ConfigDir/$HostID.conf 2>&1 >>mon_graph.error
  119.         fi
  120. done
  121.  
  122. if [ $DebugLevel = 1 ]; then echo "completed, check $WorkDir/mon_graph.error for errors..."; fi
  123.  
  124. fi # if enabled
  125. #if [ $DebugLevel = 1 ]; then echo "module disabled"; fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement