在php中使用ssh查找服务器的正常运行时间


Find uptime of server using ssh in php

我想找到全职连接的服务器的平均负载,我使用了以下代码,但在显示运行时间时出错。请有人帮我解决这个。。。

这是代码

<?php
$ip = '192.168.71.56';
$user = 'viju';
$pass = 'viju';
$connection = ssh2_connect($ip);
if($connection)
{   
 echo "connection successful";  
}
else
{
 echo "connection failed";
}
if(!(ssh2_auth_password($connection,$user,$pass)))
{
 echo "Authentication Failed";  
}
else
{
echo "Authentication Successful";
$shell = ssh2_shell($connection,"uptime");   
if($shell)
{
 $loadAvgString=explode('average:',$shell);   //line 26
 print_r($loadAvgString);
 $loadAvgInAnArray=explode(',',$loadAvgString);
 print_r($loadAvgInAnArray);
}
else
{ 
 echo "No data fetched";
}
}
?>

我得到以下警告输出

连接成功身份验证成功警告:explode()要求参数2为字符串,在第26行的/var/www/extra/dis.php中给定资源Array([0]=>)

爆炸的第二个参数必须是使用字符串分隔符连接的字符串。只需打印$shell变量并检查它是否包含字符串即可。

您应该检查$shell是否包含某些内容,而不是它是否是真正的

if (!empty($shell)) {
    ...
}

甚至更好的

if (strstr($shell, "average:")) {
    ...
}