使用python运行一个sidescript将数据传输到几台服务器的指定位置我会用ssh一个一个登录修改,或者scp或者sftp一个一个上传。基本上只要出现一点点错误,就需要半天时间。这不是最重要的。最重要的是半天时间都花在了做一件重复的事情:ssh链接->找到文件目录->修改(或者:scp上传->查看效果。。。)搞了半天,我不不想再这样了,于是学了python,写了个scp上传文件的脚本:importpackage:paramikoimportserverconfiguration:fromconfig.serverimportserver_data添加如下代码:-*-coding:UTF-8-*-importparamikofromconfig.serverimportserver_data#服务器配置数据importsysreload(sys)sys.setdefaultencoding('utf8')#创建一个单独的scp链接deftrans(hostname,username,password,端口,站点):scp=paramiko.Transport((hostname,port))scp.connect(username=username,password=password)sftp=paramiko.SFTPClient.from_transport(scp)forvinsites:printvu='/host/sites/'+v['domain']+'/msites/public/images/12124.png'#文件在服务器中的存放路径printutry:sftp.put('./upload/12124.png',u) #文件本地存储路径exceptExceptionase:print"Error:%s"%epasssftp.close()#执行每个网站defmain():i=0fordatainserver_data:i=i+1printitrans(data['hostname'],data['username'],data['password'],data['port'],data['sites'])if__name__=='__main__':main()服务器配置:server_data=[{'主机名':'', #需要填写'id':,#需要填写'username':'root','port':22,#需要填写'password':'',#需要填写'sites':[{'name':'百度'.decode('utf-8'),'domain':'baidu.com','alias':'bd','fallname':'百度'.decode('utf-8')},{'名称':'百度'.decode('utf-8'),'域':'baidu.com','别名':'bd','fallname':'百度'.decode('utf-8')},{'name':'Baidu'.decode('utf-8'),'domain':'baidu.com','alias':'bd','fallname':'Baidu'.decode('utf-8')},]},{'hostname':'','id':,'username':'root','port':22,'password':'','sites':[{'name':'Baidu'.decode('utf-8'),'domain':'baidu.com','alias':'bd','fallname':'Baidu'.decode('utf-8')},{'名称':'百度'.decode('utf-8'),'域名':'baidu.com','alias':'bd','fallname':'Baidu'.decode('utf-8')},{'name':'Baidu'.decode('utf-8'),'domain':'baidu.com','alias':'bd','fallname':'百度'.decode('utf-8')},]}];
