上下文:我想从文本编辑器在远程计算机上运行命令。
我所说的“远程命令执行”是指在某个地方运行 shell 命令:虚拟机、SSH 服务器、容器、TCP 上的 shell、任何带有 shell 的远程计算机。
我所说的“界面”是指向用户隐藏详细信息的目标。用户只需要在某处写入命令并在某处读取其输出。
我正在考虑将其设置如下:
mkfifo /tmp/f
mkfifo /tmp/g
while true; do
cat /tmp/f | ssh -J srv1 srv2 /bin/sh >/tmp/g
echo ping
done
用户向 发送命令/tmp/f
,然后从中读取命令的输出/tmp/g
。
它确实有效,但这真的是一个好的解决方案吗?传统上如何解决这个任务?
总的来说,我觉得很好:
假设脏工作(超时、日志记录、重新启动策略、配置)以某种方式处理。
界面不需要变得更加复杂。我不想包含 stdout/stderr 区别、错误消息、创建/销毁请求等。