1
我使用下面的命令通過Web界面向多臺Linux計算機發送命令。 如果我選擇30或40個客戶端,我必須等待命令運行所有這些命令,然後才能得到任何結果。 只要命令在每臺計算機上運行,是否可以開始列出結果?在php/html網頁中動態顯示結果/輸出
<?php
include('Net/SSH2.php');
$user = "user";
$pass = "pass";
$ip = $_POST['clients'];
$ssh = new Net_SSH2($ip);
$cmds = $_POST['commands'];
if(!empty($_POST['clients'])) {
foreach($_POST['clients'] as $ip) {
$ssh = new Net_SSH2($ip);
if (!$ssh->login($user, $pass)) {exit('Login Failed');}
echo "$ip: " . $ssh->exec($cmds) . "<br>";
}
}
?>
<form action="phpseclib/commands.php" method="post" target="main">
<input type="checkbox" name="clients[]" value="192.168.0.51">Client001<br>
<input type="checkbox" name="clients[]" value="192.168.0.52">Client002<br>
<input type="checkbox" name="clients[]" value="192.168.0.53">Client003<br>
<input type="checkbox" name="clients[]" value="192.168.0.54">Client004<br>
<input type="checkbox" name="clients[]" value="192.168.0.55">Client005<br>
<br/>
\t <select name="commands">
<option value="">Select Command</option>
\t \t <option value="uptime | sed 's/.*up \([^,]*\), .*/\1/'">Uptime</option>
\t \t <option value="printf $(free | grep -e-/+ | awk '{print $3/($3+$4) * 100.0 ''}' | cut -d '.' -f1)%%">Memory Usage</option>
</select>
<br>
<br/>
<input type="submit" value="Submit" />
</form>