【问题标题】:Executing a python script on multpile nodes by using ssh command in BASH在 BASH 中使用 ssh 命令在多个节点上执行 python 脚本
【发布时间】:2015-06-11 22:05:03
【问题描述】:

keygen 等,所以我可以使用密码,shell =BASH ssh remotehost w/o 我正在使用 for 循环在多个节点(远程主机)上进行 ssh,并希望执行脚本,但它似乎无法正常工作

    for i in {1..10};
    do 
    ssh -f node$i "python script.py $i"   
    done 

终端脚本挂断,没有任何反应 我也可以手动 ssh 并使用 python。 PYTHONPATH 等是为节点配置的。

节点上有 cshell,所以我使用了 .cshrc wit exec /bin/bash,它至少在我手动登录时给了我 bash shell,所以问题似乎不存在。 我

【问题讨论】:

  • 我没有挂断,只是进入后台(-f 选项)。
  • 我用过 ssh node$i nohup " python script.py $i";它也不起作用。我的 python 脚本创建了一个目录并写入,这是一个问题。
  • 看看 fabfile.org

标签: python bash shell ssh


【解决方案1】:

您应该有一个 python 脚本,通过 ssh 连接到所有远程主机并执行内容,而不是将 python 脚本包装在 shell 脚本中。

Paramiko 是一个非常适合这种用例的框架。从长远来看,维护您的脚本会容易得多。

【讨论】:

    【解决方案2】:

    使用 -o BatchMode=yes 也许您需要强制分配伪 tty 和 -n 以防止从标准输入读取

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 2016-06-29
      • 1970-01-01
      • 2014-12-10
      • 2018-12-14
      • 2012-01-12
      • 2016-07-25
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多