hi  各位  小弟现在又这样的一个问题现在公司要监控 mc  tc  以及  gearman 等东西这几个东西都可以通过 telnet服务  通过 ip port 连接并使用一些它们提供的命令来监控 比如stats  status等我现在想使用php 调用 telnet 服务 执行上述命令 对命令的返回值 也就是当前服务器的状态进行一个监控如何实现呢?  希望能给出核心的代码片段  呵呵!!!

解决方案 »

  1.   

    $out=shell_exec("telnet命令行文本");
    echo $out;
    再把$out用正则匹配你需要的字符部分!
      

  2.   

    <?php
    $host = "host1.sample.com";
    $timeout = 15;
    $status = ''; $errno = 0;
     $errstr = "";
     $s = fsockopen($host, 80, $errno, $errstr, $timeout);//建立服务连接:telnet host1.sample.com 80
     if ($s) {
      $status = "Connectedn";
      fwrite($s, "HEAD / HTTP/1.0rnHost: $hostrnrn");//向服务发送命令:HEAD / HTTP/1.0rnHost: $hostrnrn
      do {
       $data = fread($s, 8192);//获取命令响应
       if (strlen($data) == 0) {
       break;
       }
       $status .= $data;
      } while (true);
      fclose($s);//关闭服务连接
     } else {
      $status = "Connection failed: $errno $errstrn";
     }print_r($status);
    ?>支持telnet协议的话,应该能够以类似方式访问。希望对你有所启发。