通过SSH执行远程python脚本

时间:2010-11-14 23:40:02

标签: python ssh

我想使用SSH在多个(15+)远程计算机上执行Python脚本。在调用脚本/命令之后,我需要断开ssh会话并保持进程在后台运行,只要它们是必需的。

我过去使用过Paramiko和PySSH,所以再次使用它们没有问题。我唯一需要知道的是如何在python中断开ssh会话(因为通常本地脚本会等待每个远程机器在继续之前完成处理)。

4 个答案:

答案 0 :(得分:23)

这可能有用,或类似的东西:

ssh user@remote.host nohup python scriptname.py &

基本上,请查看nohup命令。

答案 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会话中,您可以运行脚本,退出终端,再次登录并在保持会话之前进行检查,直到服务器重新启动。

How to configure tmux on a cloud server