我的要求是在中央服务器的多个主机上运行命令,主机名应从文件中读取。 (ssh连接无需密码)
我可以使用下面的bash脚本实现此目标,任何人都可以在下面的python中进行设计吗?
for i in $(cat $location);
do echo $i;
sudo -i -u username ssh -q -o "StrictHostKeyChecking no" -o "NumberOfPasswordPrompts 0" -o ConnectTimeout=2 $i "cd /root/abc/$i"_"${append}/ && ./install --type R;done | tee -a $LOG1 >> $LOG 2>> $LOG &
由于我具有python的基本知识,但在下面尝试了一下,它可以对一台主机正常工作。
我的尝试
import os
import subprocess
import sys
HOST="hostname"
COMMAND = raw_input("Enter the Command: ")
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
error = ssh.stderr.readlines()
print >>sys.stderr, "ERROR: %s" % error
else:
print "cmd output"
print result