侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

工作中的几个运维脚本(build.py,send.py,rupdate.py,update.py)

2023-12-06 星期三 / 0 评论 / 0 点赞 / 97 阅读 / 7839 字

1, build.py #!/bin/env python#coding:utf-8#author:dxw#function: build#date:2016-07-13import argparse

1, build.py

#!/bin/env python#coding:utf-8#author:dxw#function: build#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 7:    eg = "eg: --projectName bbpayapi --projectNameDir BBPAYAPI_DIR --env production > build_bbpayapi.sh"    print(eg)    exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--projectNameDir", action="store", dest="projectNameDir")parser.add_argument("--env", action="store", dest="env")result = parser.parse_args()strsh='''#!/bin/bash#build_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deployBACK_DIR=$DEPLOY_DIR/backWARS_DIR=$DEPLOY_DIR/wars${projectNameDir}=$PLATFORM_DIR/${projectName}svnNumber=$1# cd $PLATFORM_DIRcd $PLATFORM_DIR# mkdir deploy/backif [ -d deploy/back ];then        echo "deploy and back isexist!"else        mkdir -p deploy/back        echo "mkdir deploy/back ok!"fi# mkdir deploy/warsif [ -d deploy/wars ];then        echo "deploy and wars isexist!"else        mkdir -p deploy/wars        echo "mkdir deploy/wars ok!"fi# cp deploy/files.war to backcp $DEPLOY_DIR/${projectName}.war $BACK_DIR/${projectName}.war# svn upsvn upif [ $? -ne 0 ];then        echo "platform svn up failed"        exit 1ficd $$${projectNameDir}#svn up -r $1svn up -r $svnNumberif [ $? -ne 0 ];then        echo "${projectName} svn up failed"        exit 1fi# build# mvn clean package -DskipTests -P ${env}mvn clean package -DskipTests -P ${env}if [ $? -ne 0 ];then        echo "${projectName} build failed"        exit 1fi#echo "cp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.war"echo "cp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.war"cp $$${projectNameDir}/target/*.war $WARS_DIR/${projectName}.war_$svnNumbercp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.warif [ $? -ne 0 ];then        echo "cp ${projectName} failed"        exit 1fidt=`date`echo "$dt &nbsp&nbsp&nbsp&nbsp $$${projectName} &nbsp&nbsp&nbsp&nbsp $$${projectNameDir} &nbsp&nbsp&nbsp&nbsp $svnNumber <br>" >> /usr/local/nginx/html/t.html'''d = dict(projectName=result.projectName, env=result.env, projectNameDir=result.projectNameDir)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d) )

 

2, send.py

#!/bin/env python#coding:utf-8#author:dxw#function: send#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 11:    eg = "eg: --projectName ebomp --port 22 --user bebepay --userDir run_pkgs --iplist 192.168.114.11,192.168.114.12,192.168.114.13,192.168.114.14 > send_bbpayapi.sh"    print(eg)    exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--port", action="store", dest="port")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")parser.add_argument("--iplist", action="store", dest="iplist")result = parser.parse_args()strsh='''#!/bin/bash#send_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deploy# COPY FILE TO REMOTE HOST'''strp='''# cp file to ${ip}echo "scp $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir} ......"scp -P ${port}  $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir}/if [ $? -ne 0 ]; then    echo "scp $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir} faill!!"    exit 1fi'''#print("userDir: %s"%(result.userDir))d1 = dict(projectName=result.projectName)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d1) )d0 = dict(port=result.port, user=result.user, userDir=result.userDir, projectName=result.projectName)ips=result.iplist.split(',')#print("iplist: %s"%(ips))for lip in ips:    t=dict(ip=lip)    d=d0.copy()    d.update(t)    s = Template(strp).safe_substitute(d)    print(s)

 

3, rupdate.py

#!/bin/env python#coding:utf-8#author:dxw#function: rupdate#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 11:    eg = "eg: --projectName ebomp --port 22 --user bebepay --userDir run_pkgs --iplist 192.168.114.11,192.168.114.12,192.168.114.13,192.168.114.14 > rupdate_bbpayapi.sh"    print(eg)    exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--port", action="store", dest="port")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")parser.add_argument("--iplist", action="store", dest="iplist")result = parser.parse_args()strsh='''#!/bin/bash#rupdate_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deploy# COPY FILE TO REMOTE HOST'''strp='''echo "Beginning ${ip} update_${projectName}.sh-------"ssh -p ${port} -t ${user}@${ip} /home/${user}/${userDir}/update_dxw_${projectName}.sh'''#print("userDir: %s"%(result.userDir))d1 = dict(projectName=result.projectName)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d1) )d0 = dict(port=result.port, user=result.user, userDir=result.userDir, projectName=result.projectName)ips=result.iplist.split(',')#print("iplist: %s"%(ips))for lip in ips:    t=dict(ip=lip)    d=d0.copy()    d.update(t)    s = Template(strp).safe_substitute(d)    print(s)

 

4, update.py

#!/bin/env python#coding:utf-8#author:dxw#function: update#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 9:    eg = "eg: --projectName ebomp --projectTomcatDir TOMCAT_EBOMP_DIR --user bebepay --userDir run_pkgs > update_bbpayapi.sh"    print(eg)    exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--projectTomcatDir", action="store", dest="projectTomcatDir")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")result = parser.parse_args()strsh='''#!/bin/bash##update_dxw_${projectName}.sh#set Shell VariableRUN_DIR=/home/${user}/${userDir}${projectTomcatDir}=/usr/local/tomcat-${projectName}#stop tomcat-${projectName}tomcat_${projectName}_pid=`ps -ef |grep java |grep tomcat-${projectName} |grep -v grep |awk '{print $2}' `echo "start kill tomcat-${projectName} ..."sudo kill -9 $tomcat_${projectName}_pidif [ $? -ne 0 ];then    echo "stop tomcat-${projectName} faill!!"fi#rm ${projectName}echo "rm ${projectName} from tomcat-${projectName}..."sudo rm -rf $$${projectTomcatDir}/webapps/${projectName}*if [ $? -ne 0 ];then    echo "rm ${projectName} on tomcat-${projectName} faill!!"fi#cp ${projectName}.warecho "cp ${projectName}.war to tomcat-${projectName} ..."sudo cp $RUN_DIR/${projectName}.war $$${projectTomcatDir}/webapps/${projectName}.warif [ $? -ne 0 ];then    echo "cp ${projectName}.war to tomcat-${projectName} faill!!"    exit 1fi#start tomcat-${projectName}echo "start tomcat-${projectName} ..."sudo $$${projectTomcatDir}/bin/startup.shif [ $? -ne 0 ];then    echo "start tomcat-${projectName} faill!!"    exit 1else    echo "start tomcat-${projectName} ok!!"fi'''d = dict(user=result.user, userDir=result.userDir, projectName=result.projectName, projectTomcatDir=result.projectTomcatDir)s = Template(strsh).safe_substitute(d)print(s)

 

广告 广告

评论区