python更新tomcat腳本

#!/usr/bin/env python
# _*_ coding:UTF-8 _*_
import commands
import time,os,sys
from download_bag import downloadbag

tomcat_home = '/usr/local/apache-tomcat-7.0.42/'
webapp_name = 'front'
update_dir = "/home/deployer/update/"
backup_home = '/home/deployer/backup_war'
uptime = time.strftime('%Y%m%d',time.localtime(time.time()))
backup_time = time.strftime('%Y%m%d_%H%M',time.localtime(time.time()))

#關閉tomcat
def shutdown():
    print "準備關閉tomcat......"
    status,output=commands.getstatusoutput('ps -ef|grep -i '+tomcat_home+'|wc -l')
    if(int(output)>2): #判斷是否有tomcat進程
        print "    開始關閉tomcat"
        status,output=commands.getstatusoutput(tomcat_home+'bin/shutdown.sh')
        if(status!=0):
            print output
            sys.exit(1)
        time.sleep(0.5) #關閉程序緩存時間
        status,output=commands.getstatusoutput('ps -ef|grep -i '+tomcat_home+'|wc -l')
        if(int(output)>2): #判斷是否關閉成功
            print "    強制關閉tomcat"
            status,output=commands.getstatusoutput('kill -9 `ps -ef|grep -i '+tomcat_home+' |awk \'NR==1{print $2}\'`')
            if(status!=0):
                print output
                sys.exit(1)
        print "    已關閉tomcat"
        return 0
    print "    tomcat未啓動"python

#備份tomcat
def backup():
    print "開始備份......"
    #判斷今日備份目錄是否存在,不存在則建立
    if(not os.path.exists(backup_home+'/'+webapp_name+'/'+backup_time)):
        status,output=commands.getstatusoutput('mkdir -p '+backup_home+'/'+webapp_name+'/'+backup_time)
        if(status!=0):
            print output
            sys.exit(1)
#    #備份當前版本,備份前先判斷目錄是不是空的
    if(len(os.listdir(tomcat_home+'webapps/'))>0):
        status,output=commands.getstatusoutput('mv '+tomcat_home+'webapps/* '+backup_home+'/'+webapp_name+'/'+backup_time)
        if(status!=0):
            print output
            sys.exit(1)
    print '    備份成功'


from download_bag import downloadbag
#部署新程序
def update():
    print "開始部署....."
    #部署新war包到tomcat裏
    status,output=commands.getstatusoutput('cp -rf '+update_dir+uptime+'/'+webapp_name + '.war ' + tomcat_home+'webapps/')
    if(status!=0):
        print output
        sys.exit(1)
    #啓動tomcat
    status,output=commands.getstatusoutput(tomcat_home+'bin/startup.sh')
    print outputweb

if __name__ == '__main__':
       if os.geteuid() == 0:
            print '''
                  ***************************************************************************
                  **********  hi,hi,hi.......請注意                             ***************
                  *********  不能用root帳號,請使用deployer帳號,如今正在退出' ***************
                  *********  exit now                                                 ********
                  '''
            sys.exit(1)
       else:
            downloadbag()
            shutdown()
            backup()
            update()apache

相關文章
相關標籤/搜索