设为首页 收藏本站
查看: 1292|回复: 0

[经验分享] python批量更新服务器上的文件

[复制链接]

尚未签到

发表于 2017-5-7 08:47:15 | 显示全部楼层 |阅读模式
因为公司业务经常需要升级全国服务器的一些脚本,每次都要手工来上传文件,然后再执行,非常烦琐。所以写了一个小脚本来批量执行,顺便炼炼手。
程序需求:
1、可以指定升级哪个模块,从配置文件中调出哪些省有此模块
2、指定升级web还是升级数据库
配置文件areamap.ini
[江苏电信]
abc = 172.16.0.1
def = 172.16.0.2

[江西电信]
abc = 172.16.2.1
def = 172.16.2.2

import os,sys
import ConfigParser
class UpDate:
def __init__(self,ModName):
self.modname = ModName
self.conf = "areamap.ini"
# 到到这个模块所有服务器的地区和IP地址
def getmodip(self):
conf=ConfigParser.ConfigParser()
conf.read(self.conf)
IP=[]
for section in conf.sections():
if self.modname in conf.options(section):
IP.append((section,conf.get(section,self.modname)))
return IP
# 取得模块与程序包的对应关系
def getwebfile(self):
ModMap={'abc':'abc.war','def':'def.war',}
return ModMap[self.modname]
# 重启tomcat
def retomcat(self,IP):
print 'Now restart tomcat:'
cmd = "ssh " + IP + " -C 'killall -9 java;sleep 10;tomcat/bin/startup.sh'"
print cmd
os.system(cmd)
if __name__ == "__main__":
if(len(sys.argv) < 3):
print 'Usage:./up.py modelname db/web sqlfilename'
sys.exit()
elif( sys.argv[2] == 'db' and len(sys.argv) != 4):
print 'Usage:./up.py modelname db sqlfilename'
sys.exit()

ModelName = sys.argv[1]
update = UpDate(ModName=ModelName)
IP = update.getmodip()
if(sys.argv[2] == 'web'):
for ip in IP:
File = update.getwebfile()
if(not os.path.isfile(File)):
print "The File: %s is not exsit" % File
sys.exit()
print "\n************"+ip[0]+"************\n"
update.copyfile(File,ip[1],'tomcat/webapps/')
update.retomcat(ip[1])

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374019-1-1.html 上篇帖子: 笔记--chap 6 异常和文件处理(dive into python) 下篇帖子: python入门(step by step)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表