使用python腳本代碼本地測試環境部署和啟動 V0.1
#!/usr/bin/evn python
#encoding=utf-8
#author:[email protected]
import sys
import os
import shutil
import commands
import time
import subprocess
#獲得svn分支地址,根據目錄判斷是checkout還是update
svn_address = sys.argv[1]
branch_dirname = svn_address.split(‘/‘)[-1]
exist_dirname = ‘/soft/tagsoft/%s‘ % (branch_dirname)
svn_checkout = ‘svn checkout %s /soft/tagsoft/%s --username xxxxxxx‘ % (svn_address,branch_dirname)
svn_update = ‘svn update %s‘ % (exist_dirname)
if os.path.exists(exist_dirname):
os.system(svn_update)
else:
os.system(svn_checkout)
#獲得要打包的工程,使用逗號分隔。cms,dms,pro 根據工程名重寫pom.xml文件
parameter_argv = sys.argv[2]
parameter_argv_name = parameter_argv.split(‘,‘)
parameter_argv_option = ‘‘
for parameter_argv_list in parameter_argv_name:
parameter_argv_option += ‘ <module>../xxxx-%s</module> \n‘ % (parameter_argv_list)
shutil.copyfile(r‘/soft/tagsoft/cms-pom.xml‘,‘/soft/tagsoft/parameter_pom.xml‘)
#查找特定行進行內容替換
with open(‘/soft/tagsoft/parameter_pom.xml‘,‘r‘) as fd:
lines = fd.readlines()
with open(‘/soft/tagsoft/parameter_pom.xml‘,‘w‘) as f_w:
for line in lines:
if ‘qwerty‘ in line:
line = line.replace(‘qwerty‘,parameter_argv_option)
f_w.write(line)
cmd_mv = ‘mv /soft/tagsoft/parameter_pom.xml %s/jzjz-parent/pom.xml‘ % (exist_dirname)
os.system(cmd_mv)
cmd_cd = ‘%s‘ % (exist_dirname)
os.chdir(cmd_cd)
os.system(‘mvn clean package -DtestSkip -P test‘)
#獲得tomcat路徑準備打包的tomcat工程
tomcat_home_dirname = sys.argv[3]
kill_pid = "ps -ef | grep %s | grep -v grep| grep -v python | awk ‘{print $2}‘ | xargs kill -9" % (tomcat_home_dirname)
subprocess.Popen(kill_pid,stdout=subprocess.PIPE,shell=True)
#刪除指定目錄內容,先刪除然後新建文件夾
rm_war = ‘%s/webapps/‘ % (tomcat_home_dirname)
shutil.rmtree(rm_war)
os.mkdir(rm_war)
for parameter_argv_list in parameter_argv_name:
parameter_argv_list_copy1 = ‘%s/jzjz-%s/target/%s.war‘ % (exist_dirname,parameter_argv_list,parameter_argv_list)
parameter_argv_list_copy2 = ‘%s/webapps/‘ % (tomcat_home_dirname)
shutil.copy(parameter_argv_list_copy1,parameter_argv_list_copy2)
print ‘拷貝%s到%s‘ % (parameter_argv_list,tomcat_home_dirname)
start_tomcat_cmd = ‘nohup %s/bin/startup.sh & ‘ % (tomcat_home_dirname)
subprocess.Popen(start_tomcat_cmd,stdout=subprocess.PIPE,shell=True)
本文出自 “學習交流” 博客,請務必保留此出處http://725689.blog.51cto.com/715689/1931193
使用python腳本代碼本地測試環境部署和啟動 V0.1