原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1583156
#!/bin/bash # # 本腳本用來對系統上的多服務進行管理操作 # 目前僅支持nginx、tomcat和jar包類的java應用進行管理操作 # Written by sunsky # Mail : 274546888@qq.com # Date : 2014-11-26 15:00:00 # function USAGE { echo -e "33[31m腳本名稱: 33[37m" echo " $0" echo -e "33[31m語法結構: 33[37m" echo " $0 {nginx|tomcat|*service} {start|stop|restart|status}" echo -e "33[31m使用范例: 33[37m" echo " $0 nginx start" echo " $0 tomcat restart" echo " $0 vin-service status" echo -e "33[31m注意事項: 33[37m" echo " 1. 該腳本管理的目錄必須遵循如下規則:" echo " a) nginx 部署路徑必須能夠通過 /usr/local/nginx 訪問到" echo " b) tomcat 部署路徑必須能夠通過 /usr/local/tomcat 訪問到" echo " c) service 類服務的部署路徑必須能夠通過 /home/apps/service類項目名/current/ 訪問到" echo " 2. \$1(服務類型)和\$2(操作)參數必須存在" exit 2 } function CAT_FUWU { if [ -z $PID ];then case $SIGNAL in start|restart) echo "正在啟動 $FUWU 服務" ;; stop) echo "$FUWU 服務已經關閉" exit ;; status) echo "$FUWU 服務處于關閉" ;; esac else case $SIGNAL in start) echo "$FUWU 服務已經開啟" exit 0 ;; stop|restart) echo "你所要殺掉的 $FUWU 服務對應的進程號為 $PID" ;; status) echo "$FUWU 服務目前正在運行,對應的進程號為 $PID" ;; esac fi } function KILL_FUWU { if [[ $PID != "" ]];then for i in $PID;do kill $PID >/dev/null 2>&1 sleep 3 kill -9 $PID >/dev/null 2>&1 done fi } function START_NGINX { /usr/local/nginx/sbin/nginx PID=`ps -ef|awk '$0~"nginx"&&$0~"master"&&$0!~"awk"{print $2}'` echo "$FUWU 服務已經啟動,它所對應的進程號為 $PID" } function START_TOMCAT { /bin/bash /usr/local/tomcat/bin/startup.sh >& /dev/null PID=`ps aux|awk '$0~"java"&&$0~"tomcat"&&$0!~"awk"{print $2}'` echo "$FUWU 服務已經啟動,它所對應的進程號為 $PID" } function START_SERVICE { /bin/bash /home/apps/$FUWU/current/startup.sh & PID=`ps -ef|awk '$0~"'$FUWU'"&&$0~"jar"&&$0!~"awk"{print $2}'` echo "$FUWU 服務已經啟動,它所對應的進程號為 $PID" } function FUWU_LIST { case $SIGNAL in start) CAT_FUWU $1 ;; stop) CAT_FUWU KILL_FUWU ;; restart) CAT_FUWU KILL_FUWU $1 ;; status) CAT_FUWU ;; *) USAGE ;; esac } function NGINX { PID=`ps -ef|awk '$0~"nginx"&&$0~"master"&&$0!~"awk"{print $2}'` FUWU_LIST START_NGINX } function TOMCAT { PID=`ps aux|awk '$0~"java"&&$0~"tomcat"&&$0!~"awk"{print $2}'` FUWU_LIST START_TOMCAT } function SERVICE { if [ ! -f /home/apps/$FUWU/current/startup.sh ];then USAGE fi PID=`ps -ef|awk '$0~"'$FUWU'"&&$0~"jar"&&$0!~"awk"{print $2}'` FUWU_LIST START_SERVICE } if [ $# -lt 2 ];then USAGE fi FUWU=$1 SIGNAL=$2 case $1 in nginx) NGINX ;; tomcat) TOMCAT ;; *service) SERVICE ;; *) USAGE ;; esac
USAGE # 幫助模塊嘍 CAT_FUWU # 用于在接收到用戶操作時,判斷服務當前狀態并給予正確相應 KILL_FUWU # 負責殺掉服務的公共模塊 START_NGINX # 負責啟動NGINX應用的模塊 START_TOMCAT # 負責啟動TOMCAT應用的模塊 START_SERVICE # 負責啟動JAR包類的JAVA應用的模塊 FUWU_LIST # 負責響應單個服務操作的公共列表 NGINX # 集合NGINX管理操作的模塊 TOMCAT # 集合TOMCAT管理操作的模塊 SERVICE # 集合JAR包類JAVA應用管理操作的模塊
轉自:http://nolinux.blog.51cto.com/4824967/1583156
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1932