Advertisement
Guest User

GarciaPL

a guest
Nov 15th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.16 KB | None | 0 0
  1. #! /usr/bin/php -q
  2. <?php
  3.  
  4. $options = getopt("H:U:P:w:c:m:x:d::");
  5. $warning = 75;
  6. $critical = 80;
  7. $host = "localhost";
  8. $username = null;
  9. $password = null;
  10. $minimum = 0;
  11. $maximum = $critical + 5;
  12. $licznikAmbient = 0;
  13. $sumatemperatur = 0;
  14. $minTemp = 100;
  15. $maxTemp = 0;
  16. $stringtemp;
  17.  
  18. if(isset($options["H"]))
  19. {
  20.         $host = $options["H"];
  21. }
  22. if(isset($options["c"]))
  23. {
  24.         $critical = $options["c"];
  25. }
  26. if(isset($options["w"]))
  27. {
  28.         $warning = $options["w"];
  29. }
  30. if(isset($options["U"]))
  31. {
  32.         $username = $options["U"];
  33. }
  34. if(isset($options["P"]))
  35. {
  36.         $password = $options["P"];
  37. }
  38. if(isset($options["m"]))
  39. {
  40.         $minimum = $options["m"];
  41. }
  42. if(isset($options["x"]))
  43. {
  44.         $maximum = $options["x"];
  45. }
  46. else
  47. {
  48.         $maximum = $critical + 5;
  49. }
  50.  
  51. $connection = @ssh2_connect($host, 22);
  52. if (!$connection)
  53. {
  54.         echo "Nie mozna polaczyc sie z serwerem\n";
  55.         exit(2);
  56. }
  57. ssh2_auth_password($connection, $username, $password);
  58.  
  59. $stream = ssh2_exec($connection, 'SHOW SERVER TEMP ALL');
  60.  
  61. stream_set_blocking($stream, true);
  62. $screen = stream_get_contents($stream);
  63. fclose($stream);
  64. $lines = split("[\n|\r]",$screen);
  65.  
  66. foreach($lines as $line)
  67. {
  68.         if(strpos($line,"Ambient Zone")===0)
  69.         {
  70.                 $licznikAmbient++;
  71.                 $lista = explode(" ", $line);
  72.                 for($licznik=0;$licznik<=20;$licznik +=1) {
  73.                         $pos = strpos($lista[$licznik], "C");
  74.                         if ($pos == true) {
  75.                                 $stringtemp = $lista[$licznik];
  76.                                 break;
  77.                         }
  78.                 }
  79.                 $temperaturka = ereg_replace("[^0-9]", "", $stringtemp);
  80.                 if ($temperaturka > $maxTemp) {
  81.                         $maxTemp = $temperaturka;
  82.                 }
  83.                 if ($temperaturka < $minTemp) {
  84.                         $minTemp = $temperaturka;
  85.                 }
  86.                 $sumatemperatur = $sumatemperatur + $temperaturka;
  87.         }
  88. }
  89.  
  90. $srednia = $sumatemperatur/$licznikAmbient;
  91. $roundsrednia=round($srednia,2);
  92.  
  93. if($srednia>=$critical)
  94. {
  95.        echo "Zbyt duza srednia temperatura=".$roundsrednia." C|SredniaTemp=".$roundsrednia.";".$warning.";".$critical.";".$minimum.";".$maximum." minTemp=".$minTemp.";".$warning.";".$critical.";".$minimum.";".$maximum." maxTemp=".$maxTemp.";".$warning.";".$critical.";".$minimum.";".$maximum."\n";
  96.        exit(2);
  97. }
  98. if($srednia>=$warning and $srednia<$critical)
  99. {
  100.        echo "Podwyzszona srednia temperatura=".$roundsrednia." C|SredniaTemp=".$roundsrednia.";".$warning.";".$critical.";".$minimum.";".$maximum." minTemp=".$minTemp.";".$warning.";".$critical.";".$minimum.";".$maximum." maxTemp=".$maxTemp.";".$warning.";".$critical.";".$minimum.";".$maximum."\n";
  101.  
  102.        exit(1);
  103. }
  104. if($srednia<$warning)
  105. {
  106.        echo "Srednia temperatura=".$roundsrednia." C|SredniaTemp=".$roundsrednia.";".$warning.";".$critical.";".$minimum.";".$maximum." minTemp=".$minTemp.";".$warning.";".$critical.";".$minimum.";".$maximum." maxTemp=".$maxTemp.";".$warning.";".$critical.";".$minimum.";".$maximum."\n";
  107.        exit(0);
  108. }
  109.  
  110. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement