【发布时间】:2016-03-28 06:19:23
【问题描述】:
我正在使用 PHP 为常见的服务器管理任务编写快捷方式(我正在使用 deployer.org,但这应该不重要)。我想添加一个任务,用于在 SSH 连接到服务器后启动交互式 bash 提示符。例如,您将运行“./dep ssh”(其中“dep”是一个 PHP 脚本),这与运行 e.g. 的效果相同。来自终端的“ssh user@server”。有没有办法在 PHP 中做到这一点?就上下文而言,我有大约 5 台服务器,我经常想要通过 SSH 连接、读取日志或复制文件等,因此我需要快捷方式。
我能得到的最接近的是这样的:
$ph = popen("bash","w");
while(($line = fgets(STDIN)) !== false){
fputs($ph,$line);
}
pclose($ph);
这使您可以向 bash 发送命令或从 bash 发送命令,但您看不到正常的 bash 提示或获得制表符完成。我需要这样的东西,但所有正常的 bash 功能都可以工作。
【问题讨论】:
-
我正在研究解决方案:)。希望我能尽快完成。
-
你为什么不把你的快捷方式写成 .bashrc 中的别名?
-
我在编写所有任务的脚本时保持一致,因此所有开发人员都可以轻松完成它们。我希望能够运行“./dep ssh stage”、“./dep release stage”、“./del logs stage”以交互方式 ssh 进入登台服务器,分别发布和查看日志(“发布”任务是例如一组非交互式 SSH 任务)