Bash Shell-通用項目升級腳本
阿新 • • 發佈:2017-06-28
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} inp) 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-通用項目升級腳本