日期:2014-05-16  浏览次数:20876 次

web页面,php exec执行的命令与在linux命令行下执行获得的结果不一致
通过php exec执行shell脚本,但与在linux命令行下执行,获得的结果不一样。脚本内容如下:
/bin/netstat -an | grep ESTABLISHED | awk '{print $4}' | cut -d: -f1 | sort | uniq -c


在命令行下获取的结果:
2 192.168.0.135

而使用php 的exec脚本执行,通过web页面来执行,获取的结果:
1
2 192.168.0.135

这个 1 不清楚是怎么来的。哪位大神帮忙看下,问题出在哪里了!php脚本如下
<?php
        exec ("/bin/netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c", $re);
        foreach ($re as $re1)                                                                               
        {                    
                echo $re1."<br>";
        }                     
        echo "Over<br>" ;     
?>

------解决方案--------------------
估计是nginx->php的连接引起的吧, 你可以让Php只调一下/bin/netstat -an 
------解决方案--------------------
 grep ESTABLISHED看看output是什么。