在BASH中使用ssh命令在多页面节点上执行python脚本

时间:2015-06-11 22:05:03

标签: python bash shell ssh

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

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

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

节点上有cshell,所以我使用.cshrc机智exec / bin / bash,至少当我手动登录时给我bash shell,所以问题doesent似乎就在那里。 我

2 个答案:

答案 0 :(得分:0)

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

对于这种用例,

Paramiko是一个非常好的框架。从长远来看,维护你的脚本要容易得多。

答案 1 :(得分:0)

使用-o BatchMode = yes 也许你需要强制分配伪tty和-n以防止从stdin读取