php - 使用phpseclib通过SSH在SSH screen 上运行命令

标签 php ssh gnu-screen phpseclib

我有一个可通过SSH启动分离屏幕的PHP脚本:

$ssh->exec("screen -m -d -S ".$user);

我现在需要在该屏幕中执行命令,而不必在该屏幕中。我有执行此操作的代码,该代码已通过SSH客户端进行了测试,但是当我尝试将其与phpseclib exec命令一起使用时,它将无法正常工作。这是有效的代码:
screen -S ".$user." -X stuff "cd minecraft/servers/".$user."/;sh start.sh $(printf '\r')"

这就是PHP脚本中的内容:
$ssh->exec("screen -S ".$user." -X stuff \"cd minecraft/servers/".$user."/;sh start.sh $(printf '\r')\"");
我试图转义代码中多余的双引号。

我可以做些什么来通过PHP进行这项工作吗?谢谢

最佳答案

嗯...

创建两个bash脚本,第一个是:使用名称为f.e的用户参数创建屏幕。 run_screen,第二个:SSH客户端测试器,其user参数名为f.e. run_test

运行第一个脚本:

$ssh->exec('[full_path]/run_screen ' . $user);

第二:
$ssh->exec('[full_path]/run_test ' . $user);
bash语法在这里bash syntax

确保服务器的用户(例如Apache)具有运行脚本的权限。

关于php - 使用phpseclib通过SSH在SSH screen 上运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592314/

相关文章:

php - 如何使用 PHP 将代码 append 到 <head> ?

svn - Xcode svn+ssh 自定义端口不工作?

javascript - 共享 linux 终端 - 解释分辨率差异

php - 选择多行的 ID 并将它们用于更新查询中的 WHERE IN 子句

php - 在共享主机上安装 Composer

git - 从 Github 服务器导出 ssh key

login - phpstorm SSH 不会给我带来下一个按钮

ncurses - screen 真彩色 Ubuntu 18.04 坏了

unix - GNU screen 命令不显示状态栏

php - 使用php读取.xlsx文件并写入数据库