2014-04-11 59 views
-1

我想查找連接全部時間的服務器的負載平均值,我使用了下面的代碼,但是顯示正常運行時間時出現錯誤。請有人幫我解決這個問題...在php中使用ssh查找服務器的正常運行時間

下面是代碼

<?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"; 
} 
} 
?> 

不然我和警告以下輸出

連接成功驗證成功 警告:爆炸()預計參數2是字符串,在第26行的/var/www/extra/dis.php中給出的資源Array([0] =>)

回答

0

爆炸的第二個參數必須是使用字符串delimiter.just打印的字符串$ shell變量和c到底是否持有一個字符串或不

+0

打印$ shell變量顯示「資源ID#3「。它不顯示任何字符串..我能做些什麼來起牀時間? – VIJU

+0

我認爲你的ssh2_shell($連接,「uptime」);函數返回查詢結果。如果你正在使用mysql,你可以使用mysql_fetch_array來獲取數據。如果沒有檢查到那個函數返回的是什麼。 – AVM

0

您應該檢查是否$殼含有東西,而不是它是否是真的

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

更好

if (strstr($shell, "average:")) { 
    ... 
} 
相關問題