【发布时间】:2018-11-22 21:59:54
【问题描述】:
我正在使用 Phpseclib 1.0 在远程服务器上执行多个命令。我知道如何配置它以在错误时退出,但是有什么方法可以设置如果出现错误它将停止并执行不同的命令?例如,当一切正常时,我有 8 个命令要执行,它没有显示任何输出,所以一切都很好。如果例如在第 4 个命令之后出现错误,我需要它停止执行其余命令并执行命令以删除它所做的事情以及另一个命令来运行另一个脚本以通知管理员有关事故。我当前使用的代码是
<?php
include('Net/SSH2.php');
ini_set('display_errors', 1);
error_reporting(E_ALL);
$ssh = new Net_SSH2('host');
if (!$ssh->login('user', 'password')) {
exit('Login Failed');
}
echo '<pre>' . $ssh->exec('create vlan “TEST”') . '</pre>';
echo '<pre>' . $ssh->exec('configure vlan TEST tag 666') . '</pre>';
echo '<pre>' . $ssh->exec('configure vlan TEST add ports 8 untagged') . '</pre>';
echo '<pre>' . $ssh->exec('create l2vpn vpws TEST fec-id-type pseudo-wire 666') . '</pre>';
// Execute on error
echo '<pre>' . $ssh->exec('delete l2vpn vpws “TEST”') . '</pre>';
echo '<pre>' . $ssh->exec('delete vlan “TEST”') . '</pre>';
?>
【问题讨论】:
-
请添加一些代码来重现您的问题。
-
你有非常奇怪的引号
“...”,不确定它们是否真的有效。