我正在我的网页上创建一个按钮。我希望当有人按下此按钮时,在我的第一台服务器上执行Linux命令进程(例如" cd file"&#34 ; ./ file_to_execute" ..)当这些命令完成并完成后,我想通过ssh在另一台服务器上连接并执行另一个命令。 问题是我怎么知道之前的命令已经完成以进入第二部分,即在另一台服务器上连接。 恢复 : 第一步连接第一台服务器,执行一些命令 =>当这些命令完成时(部分我不知道该怎么做) 第二步:连接另一台服务器并执行其他命令。 我正在寻找一种方法,允许我添加一些弹出窗口,告知用户我的网页,他完成了第一步,然后他开始了第二步。
<?php
$hostname = '192.177.0.252';
$username = 'pepe';
$password = '*****';
$commande = 'cd file && ./file_one.sh';
if (false === $connection_first = ssh2_connect($hostname, 22)) {
echo 'failed<br />';
exit();
}
else {
echo 'Connected<br />';
}
if (false === ssh2_auth_password($connection_first, $username, $password)) {
echo 'failed<br />';
exit();
}
else {
echo 'done !<br />';
}
if (false === $stream = ssh2_exec($connection_first, $commande)) {
echo "error<br />";
}
?>
&#13;
由于
PS:对不起我的英语,我来自Barcelone
答案 0 :(得分:0)
要处理发生异常的事件,我建议使用try / catch语句,如下所示:
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
当您尝试处理事件并需要知道它们何时完成时,有几种方法可以实现此目的。您可以在执行命令后将布尔值设置为true(就像您已经在做的那样)。或者您可以通过将输出打印到txt文件然后回显此文件的返回来返回命令的输出。请参阅以下代码:
exec ('/usr/bin/flush-cache-mage > /tmp/.tmp-mxadmin');
$out = nl2br(file_get_contents('/tmp/.tmp-mxadmin'));
echo $out;
此时,您可以根据$out
变量中返回的内容创建条件。