PHP ssh2_exec,一次执行多个命令

时间:2012-11-14 21:28:54

标签: php bash libssh2

我正在使用ssh2_exec在我的CentOS服务器上执行PHP中的一些命令,而且我已经多次使用它了,但是今天,当我尝试用&&同时执行4或5个命令时,它不工作。以下是代码:

if (!($stream = ssh2_exec($con, 'cp -rf /home/shared/Tekkit_Server_3.1.2.zip /home/servers2/'.$mUsername.' && unzip /home/servers2/'.$mUsername.'/Tekkit_Server_3.1.2.zip && rm -rf /home/servers2/'.$mUsername.'/mods/mod_NetherOres.jar && mv -f /home/servers2/'.$mUsername.'/Tekkit.jar /home/servers2/'.$mUsername.'/craftbukkit.jar'))) {
    echo "fail: unable to execute command\n";
}

它将ZIP复制到正确的目录,但是那时没有做任何想法?

谢谢!

修改

我尝试过:

 if (!($stream = ssh2_exec($con, 'unzip /home/servers2/'.$mUsername.'/Tekkit_Server_3.1.2.zip'))){
                        echo "fail: unable to execute command\n";
 }

并返回:fail:无法执行命令

其他命令工作正常,当我在终端中运行命令时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

我测试了您的示例,如果您向-d命令提供unzip选项并指定应解压缩文件的目录,它看起来很有效:

if (!($stream = ssh2_exec($con, 'unzip /home/servers2/'.$mUsername.'/Tekkit_Server_3.1.2.zip -d /home/servers2/'.$mUsername))){
    echo "fail: unable to execute command\n";
}