1. 程式人生 > >Bash Shell-通用項目升級腳本

Bash Shell-通用項目升級腳本

date 獲取參數 code one ade iss bsp sin 使用

#!/bin/bash

################################################################################
# Filename : upgrade_project.sh
# Summary  : 項目升級腳本
# License  : GPL    
# Version  : 1.0
# Author   : Jet Bi
# Email    : 1207501666@qq.com
# Date     : 2016/08/08
# Note     :
#    1.需要項目支持svn升級方式,並裝有svn
#    2.需要restart_tomcat.sh存在
#    
3.使用說明 # 升級:./upgrade_project.sh -p 項目路徑 -t Tomcat路徑 # 回滾:./upgrade_project.sh -r 版本號 -p 項目路徑 -t Tomcat路徑 ################################################################################ project_path="" # 項目路徑 project_version
="" # 項目版本 tomcat_path="" # Tomcat路徑 restart_script="/local/script/restart_tomcat.sh" # 重啟腳本路徑 log_file="/local/script/logs/upgrade.log" # 日誌文件路徑 # 獲取參數,並給變量賦值 while getopts p:r:t: OPT; do case ${OPT} in
p) project_path=${OPTARG} ;; r) project_version=${OPTARG} ;; t) tomcat_path=${OPTARG} ;; esac done # 檢查是否設置了項目路徑和Tomcat路徑 echo ${project_path:?"-p Option:Missing Project Path"} > /dev/null echo ${tomcat_path:?"-t Option:Missing Tomcat Path"} > /dev/null # 查看是否有Tomcat重啟腳本 if [ ! -e ${restart_script} ]; then echo "Can‘t find /local/script/restart_tomcat.sh" exit 1 fi # 查看是否有執行腳本的權限 if [ ! -x ${restart_script} ]; then chmod u+x ${restart_script} fi # 判斷項目目錄是否合法 if [[ ! -d ${project_path} ]]; then echo "${project_path} is not a directory!" exit 2 fi # 查看是否存在日誌目錄,不存在創建 if [[ ! -e $(dirname ${log_file}) ]]; then echo "No directory of upgrade.log: $(dirname ${log_file})" mkdir $(dirname ${log_file}) # exit 3 fi # 開始升級 echo ---------------------------------------------------------------------------->> ${log_file} echo "upgrade_title:$(date +%Y-%m-%d" "%H:%M:%S) svn up ${project_path}" >> ${log_file} echo -e "upgrade_content:\c" >> ${log_file} if [ ${project_version} ]; then svn up -r ${OPTARG} ${project_path} >> ${log_file} 2>&1 && ${restart_script} ${tomcat_path} else svn up ${project_path} >> ${log_file} 2>&1 && ${restart_script} ${tomcat_path} fi echo ---------------------------------------------------------------------------->> ${log_file} exit 0

Bash Shell-通用項目升級腳本