我想使用SSH在多个(15+)远程计算机上执行Python脚本。在调用脚本/命令之后,我需要断开ssh会话并保持进程在后台运行,只要它们是必需的。
我过去使用过Paramiko和PySSH,所以再次使用它们没有问题。我唯一需要知道的是如何在python中断开ssh会话(因为通常本地脚本会等待每个远程机器在继续之前完成处理)。
答案 0 :(得分:23)
答案 1 :(得分:4)
在Linux机器上,您可以使用'at'运行脚本。
echo“python scriptname.py”|现在
答案 2 :(得分:1)
如果要在许多主机上执行重复性任务,例如部署软件和运行安装脚本,则应考虑使用类似Fabric
的内容Fabric是一个Python(2.5或更高版本)库和命令行工具 简化SSH在应用程序部署或系统中的使用 管理任务。
它提供了执行本地或远程的基本操作套件 shell命令(通常或通过sudo)和上传/下载文件, 以及辅助功能,例如提示正在运行的用户 用于输入或中止执行。
典型用法涉及创建包含一个或多个的Python模块 函数,然后通过fab命令行工具执行它们。
答案 3 :(得分:0)
您甚至可以在此方案中使用tmux。
根据 tmux 文档:
tmux是终端多路复用器。它允许您在一个终端中的多个程序之间轻松切换,分离它们(它们在后台继续运行)并将它们重新连接到不同的终端。并做更多的事情
从tmux会话中,您可以运行脚本,退出终端,再次登录并在保持会话之前进行检查,直到服务器重新启动。