之前線上服務器分發配置都是用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感興趣了,學的才快。