我的程序启动后,它会打开任意数量的 ssh session (用户定义)并无限期地在服务器上运行特定命令(当 true 循环时)或直到用户退出。出于效率原因,我只想创建每个 session 一次,然后能够运行命令直到用户退出。
我如何在 python 中执行此操作?我在另一篇文章中遇到了一个很酷的方法,它使用 subprocess
来运行命令并捕获其 STDOUT。我如何才能首先启动 session ,然后运行循环命令?
任何指向 Python 中类似过程的东西的链接也将不胜感激。这是我的第一个 Python 应用程序。
最佳答案
暂时忽略 Python,你可以通过添加这个来复用 ssh
session
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 1h
到您的 ~/.ssh/config
文件。连接到一台机器一次后,到这台机器的 ssh session 将保持打开状态,随后的命令将在这台机器上几乎同时执行。然后,您可以使用 Python 子进程调用 ssh 并根据需要在该机器上执行命令, session 将被重用,而无需执行任何特殊操作。
如果您不想让 session 多路复用成为默认行为(或者您正在为可能没有将其作为默认设置的其他用户部署)。
关于python - 在 Python 中创建和维护多个 ssh session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322401/