之前線上伺服器分發配置都是用shell和expect指令碼分發,指令碼寫了很長,上週換了ansible,現在自己用python寫一個,就30行程式碼就可以實現需求,之前的shell寫了快200行了,蛋疼,程式碼如下:
from multiprocessing import Process
import paramiko
import sys
file = sys.argv[1]
Username = "root"
Password = "123456"
Dest_Path = [ "/data/x5online/%s" %file,
"/tmp/%s" %file ]
Port = 22
def sftpPut(ip):
try:
s = paramiko.Transport((ip,Port))
s.connect(username=Username,password=Password)
sftp = paramiko.SFTPClient.from_transport(s)
localFile = file
for remoteFile in Dest_Path: sftp.put(localFile,remoteFile)
print("%s put successful." %ip)
except:
print("%s not exits."%ip)
def ipProcess():
for i in range(10,40):
ip = '192.168.170.%s'%i
p = Process(target=sftpPut,args=(ip,))
p.start()
if __name__ == '__main__':
ipProcess()
雞湯一回,對python感興趣了,學的才快。