日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

烂泥:学习tomcat之通过shell批量管理多个tomcat

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 烂泥:学习tomcat之通过shell批量管理多个tomcat 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

本文由ilanniweb提供友情贊助,首發于爛泥行天下

想要獲得更多的文章,可以關注我的微信ilanniweb

公司的業務是使用tomcat做web容器,為了更有效的利用服務器的性能,我們一般部署多個tomcat做業務的負載均衡。

一、業務需求

目前一臺服務器上,部署了4個tomcat,也就相當于4個節點。平時在維護業務時,需要我們一個一個tomcat實例進行單獨的維護,感覺很不方便,所以就有了這篇文章。

但是為了更方便的管理這4個tomcat,我這邊做了兩方面的工作,一是把所有的tomcat工作目錄都指向另外單獨的一個目錄下,二是通過shell來啟動、關閉和重啟tomcat。

PS:本次實驗的測試OS為centos6.5 64bit,但是shell腳本也可以在ubuntu下使用。

二、修改tomcat工作目錄

為了不一個一個單獨的維護tomcat實例,首先我們來修改tomcat實例的工作目錄。所有的tomcat配置文件位于conf目錄下的server.xml文件。

我們只需要修改server.xml文件的appBase配置項,這樣就可以指定tomcat實例的工作目錄。如下:

我們需要把每一個tomcat實例server.xml配置文件的appBase配置項,修改為/app/tomcat/apiwebapps。

以上修改完畢后,我們需要創建/app/tomcat/apiwebapps目錄。

mkdir -p /app/tomcat/apiwebapps

tree -L 3 /app/

現在我們可以查看node1為例,查看該tomcat實例的目錄結構,如下:

tree -L 1 ./node1

注意:這4個tomcat所監聽的端口是不同的,否則無法啟動tomcat。

有關tomcat的單機多實例,可以看我的下一篇文章《爛泥:學習tomcat之tomcat單機多實例》。

三、創建shell腳本

現在我是把4個tomcat實例都放到/app/tomcat目錄下, 這4個tomcat實例目錄名稱分別為node1、node2、node3、node4。 可以看出這4個tomcat實例的命名規則為node${i}。現在開始編寫shell腳本。

3.1 新建ilanni.sh腳本

新建一個shell文件命名為 ilanni.sh,內容如下:

#!/bin/bash

# Apache Tomcat daemon

# chkconfig: 345 10 10

# description: Apache Tomcat daemon

# processname: tomcat

echo "  ______                           __   "

echo " /_  __/___  ____ ___  _________ _/ /_  "

echo "  / / / __ \/ __  __ \/ ___/ __  / __/  "

echo " / / / /_/ / / / / / / /__/ /_/ / /_    "

echo "/_/  \____/_/ /_/ /_/\___/\__,_/\__/    "

echo "                                        "

#定義JAVA_HOME

export JAVA_HOME=/usr/local/java/jdk1.7.0_80

#定義多個tomcat的總目錄,/app/tomcat目錄下有node1、node2、node3、node4 四個tomcat實例。

tom="/app/tomcat/node"

#定義啟動腳本路徑

startup_bin="bin/startup.sh"

#定義tomcat的啟動方式,啟動方式為tomcat.sh p1 start類似的命令

usage="{p1|p2|p3|all} {start|stop|restart|status}"

dev="/dev/null"

#定義如何啟動tomcat,在此我們是通過個數tomcat以及前面定義的tomcat的命令,來操作tomcat

#judge $1 $2 whether null

if [ "$1" == "" -o "$2" == "" ];then

    echo

     echo "Usage: $0 $usage"

    echo

exit 1

fi

#judge $1

case $1 in

   "p1")

    tomcats="1"

;;

   "p2")

    tomcats="1 2"

;;

   "p3")

    tomcats="1 2 3"

;;

   "all")

    tomcats="1 2 3 4"

;;

   *)

   echo "Usage: $0 $usage"

;;

esac

#定義tomcat的啟動

#define start function

tomcatstart() {

for i in $tomcats

  do

  tom_home="$tom$i"

  run_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom_home}")

if [ "${run_status}X" != "X" ];then

echo "node$i is already running..."

else

${tom_home}/${startup_bin} &>$dev

echo "node$i starting,Please wait 2s..."

sleep 2

fi

done

}

#定義tomcat的關閉

#define stop function

tomcatstop() {

for j in $tomcats

do

tom1_home="$tom$j"

tomcat_pid=$(ps -ef | grep ${tom1_home} | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $2}')

if [ "${tomcat_pid}X" == "X" ];then

echo "node$j is not running..."

else

kill -9 ${tomcat_pid} & >$dev

echo "node$j stopping,Please wait 1s..."

sleep 1

echo "delte node$j cache,Please wait 1s..."

rm -rf ${tom1_home}/work/*

fi

done

}

#定義tomcat的重啟

#define restart function

tomcatrestart() {

for m in $tomcats

do

tom2_home="$tom$m"

run2_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom2_home}")

if [ "${run2_status}X" == "X" ];then

echo "node$m is not running..."

${tom2_home}/${startup_bin} &>$dev

echo "node$m starting,Please wait 2s..."

sleep 2

else

ps -ef | grep ${tom2_home} | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $2}'| xargs kill -9 >$dev

echo "node$m stopping,Please wait 2s..."

sleep 1

${tom2_home}/${startup_bin} &>$dev

echo "node$m starting,Please wait 2s..."

sleep 2

fi

done

}

#定義tomcat的狀態

#define status function

tomcatstatus() {

for n in $tomcats

do

tom3_home="$tom$n"

run3_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom3_home}")

if [ "${run3_status}X" == "X" ];then

echo "node$n is not running..."

else

echo "node$n is running"

fi

done

}

#judge $2

case $2 in

    "start")

    tomcatstart

;;

    "stop")

    tomcatstop

;;

   "restart")

   tomcatrestart

;;

   "status")

   tomcatstatus

;;

   *)

   echo "Usage: $0 $usage"

;;

esac

3.2 修改ilanni.sh文件權限

ilanni.sh腳本創建完畢后,現在我們來修改ilanni.sh的執行權限。如下:

chmod +x ilanni.sh

四、啟動與關閉tomcat

ilanni.sh權限修改完畢之后,我們就可以來啟動這4個tomcat實例了。比如現在想啟動node1和node2這兩個實例,我們可以通過以下命令來啟動。

./ilanni.sh p2 start

./ilanni.sh p2 status

通過上圖,可以很明顯的看出實例node1、node2已經啟動了。

tomcat啟動后,如果要停止的話,我們可以使用如下命令:

./ilanni.sh p2 stop

通過上圖,我們可以看到,我們已經把實例node1、node2停掉了,而且我們也刪除了實例node1、node2的緩存。

以上我們是以啟動兩個tomcat實例為例的,如果啟動或者關閉是一個、三個以及所有tomcat實例的話,我們可以使用如下命令。

./ilanni.sh p1 start

./ilanni.sh p3 start

./ilanni.sh all start

當然相應的關閉、重啟和查看狀態命令,分別如下。

關閉命令:

./ilanni.sh p1 stop

./ilanni.sh p3 stop

./ilanni.sh all stop

查看狀態命令:

./ilanni.sh p1 status

./ilanni.sh p3 status

./ilanni.sh all status

注意:該shell腳本只能按照node1、node2、node3、node4等依次執行下去,不能單獨的停止和啟動tomcat實例,除node1外。

五、把ilanni腳本加入系統服務

為了操作更方便,我們可以把ilanni.sh這個腳本加入到系統服務中。具體操作方法如下:

cp ilanni.sh /etc/init.d/ilanni

chkconfig --add /etc/init.d/ilanni

chkconfig ilanni on

查看是否已添加進服務列表

chkconfig --list |grep ilanni

添加到服務以后, 就可以這樣以服務方式來啟動和停止、重啟tomcat實例了。如下:

/etc/init.d/ilanni p2 start

/etc/init.d/ilanni p2 status

通過上圖,我們可以出,ilanni.sh腳本已經就加入到系統服務之中了。

到此有關通過shell批量管理tomcat的文章就結束了。

轉載于:https://my.oschina.net/lanni654321/blog/608309

總結

以上是生活随笔為你收集整理的烂泥:学习tomcat之通过shell批量管理多个tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人久久精品人妻一区二区三区 | 国产一区二区久久精品 | 亚洲黄色免费网站 | 亚洲涩涩网| 超碰在线色| 色婷婷狠狠爱 | 日韩免费专区 | 欧美精品导航 | www.色com | 日韩精品一区二区三区色欲av | www.午夜av| 欧美日韩成人免费 | 欧美三级不卡 | 在线观看国产福利 | 在线a级 | 久久视频一区二区三区 | 爽好多水快深点欧美视频 | 内射一区二区 | 福利在线免费观看 | 久久免费国产视频 | 男女做那个视频 | 黄色av网址在线观看 | 国产日韩精品一区二区三区在线 | 一个人看的视频www 色就是色网站 | 日本精品一二三区 | 黄色在线观看视频网站 | 青青草视频免费播放 | 国产奶水涨喷在线播放 | 制服丝袜第二页 | 六月丁香色婷婷 | 阿v天堂2018 俄罗斯丰满熟妇hd av色吧 | 婷婷av一区二区三区 | 就去色综合 | 96久久| 激情综合一区二区三区 | 欧美日韩免费一区二区 | www.日韩av | 女人18毛片毛片毛片毛片区二 | 污视频导航| 欧美3p在线观看 | 国产精品作爱 | 91午夜剧场| 红色假期黑色婚礼2 | 天天躁日日躁bbbbb | 欧美黄片一区二区三区 | 二十四小时在线更新观看 | 国产无遮挡又黄又爽免费视频 | 欧美日韩美女 | 色哟哟导航 | 成人1区2区| 亚洲精品国产精品乱码不卡 | 3d动漫精品啪啪一区二区免费 | 欧美日韩亚洲视频 | 啪啪网站免费观看 | 夜色在线影院 | 国产精品一区二区在线免费观看 | www.好了av | 欧美黑人一区二区 | 亚洲丁香色 | 日本高清视频在线观看 | 亚洲啪啪网址 | 7777奇米影视 | 91粉色视频| 国产精品女主播 | 日韩欧美一卡 | 羞羞的视频网站 | 豆花免费跳转入口官网 | 日韩亚洲欧美精品 | gogo人体做爰大胆视频 | 午夜伦理av | 日韩综合另类 | 中文字幕3页 | 男男做爰猛烈叫床爽爽小说 | 成年人国产精品 | 婷婷五月综合久久中文字幕 | 99精品小视频 | 亚洲一区二区三区在线观看视频 | 成人在线免费看 | 国产精品乱码一区二区视频 | 91文字幕巨乱亚洲香蕉 | 波多野结衣一二三四区 | 亚州综合视频 | 色老大影院 | 亚洲一区二区福利视频 | 免费视频网站在线观看入口 | 91精品国产色综合久久不卡粉嫩 | 污视频大全 | 国产手机看片 | 天天干网址 | 亚洲の无码国产の无码步美 | 色婷在线 | 奇米影视盒 | 亚洲国产v | 精品一区二区视频在线观看 | 一卡二卡三卡在线 | 久久久久无码国产精品不卡 | 日本五十路女优 | 中文字幕一级 | 欧美一区二区在线播放 |