次のPHPスクリプトはps -efのような単純なLinuxコマンドで動作しますが、./dstat -t -aを使用するとハングしてしまいますプロンプトがローカルマシンに戻ってきます。すべてのコマンドはリモートホスト上のsshで実行されることを覚えておいてください:
<?php
$target = time() . '_' . 'txt';
if($ssh = ssh2_connect('10.1.0.174', 22)) {
if(ssh2_auth_password($ssh, 'root', 'kmoon77')) {
//$stream = ssh2_exec($ssh, 'whoami');
$sCommand = 'dstat -a';
//$sCommand = 'ps -ef';
$stream = ssh2_exec($ssh, $sCommand);
//$stream = ssh2_exec($ssh, 'pwd');
stream_set_blocking($stream, true);
$data = '';
while($buffer = fread($stream, 4096)) {
$data .= $buffer;
}
//fclose($stream);
echo $data; // user
}
}
?>
「dstat」が無期限に実行されるという問題がありますか? – mario
Mario、それは明らかに問題でしたが、私を逃れました。小さなサンプルとして以下のコマンドを使用しました:$ sCommand = "cd /root/dstat-0.7.2; ./dstat -cdngy 5 3 >> test。 TXT";使用できることに注意してください。複数のコマンドを持つこと。 – kamal