Advertisement
Guest User

Funcionando

a guest
Feb 13th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php
  3.  
  4.  
  5. $host=$argv[1];
  6. $port=$argv[2];
  7. $username=$argv[3];
  8. $password=$argv[4];
  9. $src=$argv[5];
  10. $dst=$argv[6];
  11. $repeat=$argv[7];
  12.  
  13. $ssh = ssh2_connect($host, $port);
  14.  
  15. if(ssh2_auth_password ($ssh, $username, $password)){
  16.  
  17. }
  18.  
  19. $cmd = 'ping ' . $dst . ' source ' . $src . ' repeat ' . $repeat;
  20.  
  21. $stream = ssh2_exec($ssh, $cmd);
  22.  
  23. stream_set_blocking ($stream, true);
  24.  
  25. $data = '';
  26.  
  27. while($buffer = fread($stream, 4096)){
  28.  
  29. $data .= $buffer;
  30. }
  31.  
  32. preg_match('/Success rate is (\d+)/', $data, $match);
  33.  
  34. preg_match('/round-trip min\/avg\/max = (\d+)\/(\d+)\/(\d+) ms/', $data, $tr);
  35.  
  36. $packet_sucess=$match[1];
  37.  
  38.  
  39. $min='';
  40. $avg='';
  41. $max='';
  42. $min=$tr[1];
  43. $avg=$tr[2];
  44. $max=$tr[3];
  45.  
  46. $packet_loss=100-$packet_sucess;
  47.  
  48. fclose($stream);
  49.  
  50.  
  51.  
  52. switch ($packet_sucess) {
  53. case "$packet_sucess" == "100":
  54. print "OK - $packet_loss % packet loss min=$min/avg=$avg/max=$max. | pl=$packet_loss;min=$min;avg=$avg;max=$max\n";
  55. exit(0);
  56.  
  57. case "$packet_sucess" >= "90":
  58. print "WARNING - $packet_loss % packet loss min=$min/avg=$avg/max=$max. | pl=$packet_loss;min=$min;avg=$avg;max=$max\n";
  59. exit(1);
  60.  
  61. case "$packet_sucess" <= "90":
  62. print "CRITICAL - $packet_loss % packet loss min=$min/avg=$avg/max=$max. | pl=$packet_loss;min=$min;avg=$avg;max=$max\n";
  63. exit(2);
  64.  
  65. default:
  66. print "UNKNOWN - packet loss error.\n";
  67. exit(3);
  68. }
  69.  
  70. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement