Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP ssh2_exec,一次执行多个命令_Php_Bash_Libssh2 - Fatal编程技术网

PHP ssh2_exec,一次执行多个命令

PHP ssh2_exec,一次执行多个命令,php,bash,libssh2,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.

我使用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";
}
它将压缩文件复制到正确的目录中,但从那里什么也不做,有什么想法吗

谢谢

编辑

我试着做:

 if (!($stream = ssh2_exec($con, 'unzip /home/servers2/'.$mUsername.'/Tekkit_Server_3.1.2.zip'))){
                        echo "fail: unable to execute command\n";
 }
它返回:fail:无法执行命令


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

我测试了您的示例,如果您为
解压
命令提供
-d
选项并指定文件应解压的目录,则它看起来工作正常:

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";
}

看看这是否有帮助:使用这种方法似乎不起作用。我刚才甚至试着用睡眠将它们分成不同的命令(5);在每个和之间,它都不起作用。你能让它将结果输出到目标机器上的日志中,然后去看看失败的地方吗?解压失败,但没有错误,因为现在我刚刚在服务器上解压了文件,我正在复制,但我猜只是临时修复。