#!/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