为了简化tomcat的部署复杂度, 把以前单独配置的脚本提出来做了一个带参数的, 可以用于单机环境下的多tomcat实例管理.

其中deploy功能, 会将指定的模块war按日期时间更名备份后, 再部署新的war

命令行格式为

tc.sh [tomcat_location] {status|start|stop|restart|jstat|deploy} [module_name]

脚本代码

# Please define the absolute path of tomcat instance
JAVA_HOME=/opt/java/jdk1..0_101
TC_BASE=/home/tomcat
BUILD_FOLDER=/home/tomcat/builds status() {
echo -n "[$(date +%Y%m%d-%H%M%S)] "
pid=`ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'`
if [ -z ${pid} ] ; then
echo $' is not running'
else
echo $' is running at pid: '${pid}
fi
} start() {
echo -n "[$(date +%Y%m%d-%H%M%S)] Start: "
pid=`ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'`
if [ -z ${pid} ] ; then
echo $
. ${CATALINA_BASE}/bin/startup.sh
else
echo $' is running at pid: '${pid}
fi
} stop() {
if [ -z $ ]; then
exit
fi echo -n "[$(date +%Y%m%d-%H%M%S)] Stop: "
pid=`ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'`
if [ -z $pid ] ; then
echo $' is not running'
else
echo $' is running at pid:'${pid}
. ${CATALINA_BASE}/bin/shutdown.sh
sleep
fi pid=`ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'`
if [ -z $pid ] ; then
echo 'Done'
else
echo 'Still running, now killing with pid:'${pid}
ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'|xargs kill -s
fi
} restart() {
stop $
sleep
start $
} deploy() {
if [ -z $ ]; then
echo $"Usage: $0 $1 deploy [module_name]"
exit
fi
[ -f ${BUILD_FOLDER}/$.war ] || exit stop $
df -h
echo '' local BACKUP_FILENAME=$-$(date +%Y%m%d-%H%M).war
echo -n "[$(date +%Y%m%d-%H%M%S)] Deploy: "
echo -n "backup ${BACKUP_FILENAME}... "
mv ${CATALINA_BASE}/webapps/$.war ${BUILD_FOLDER}/${BACKUP_FILENAME}
echo -n "clean... "
rm -rf ${CATALINA_BASE}/webapps/$
echo -n "copy... "
cp -f ${BUILD_FOLDER}/$.war ${CATALINA_BASE}/webapps/
echo 'done' start $
} jstat() {
if [ -z $ ]; then
exit
fi
local CATALINA_BASE=${TC_BASE}/$
[ -d ${CATALINA_BASE} ] || exit
echo -n "[$(date +%Y%m%d-%H%M%S)] jstat: "
pid=`ps -ef|grep ${CATALINA_BASE}|grep -v 'grep'|grep 'java'|awk '{print $2}'`
if [ -z $pid ] ; then
echo $' is not running'
else
echo $' is running at pid:'${pid}
${JAVA_HOME}/bin/jmap -heap ${pid}
echo ''
${JAVA_HOME}/bin/jstat -gcutil ${pid}
fi
} if [ -z $ ]; then
echo $"Usage: $0 [tomcat_location] {status|start|stop|restart|jstat|deploy} [module_name]"
exit
else
target=${%/}
fi CATALINA_BASE=${TC_BASE}/$target
[ -d ${CATALINA_BASE} ] || exit case "$2" in
status)
$ $target
;;
start)
$ $target
;;
stop)
$ $target
;;
restart)
$ $target
;;
jstat)
$ $target
;;
deploy)
$ $target $
;;
*)
echo $"Usage: $0 [tomcat_location] {status|start|stop|restart|jstat|deploy} [module_name]"
exit
esac

对应的tomcat实例内部的startup.sh 和 shutdown.sh, 只需要配置jvm参数和tomcat源路径

startup.sh

JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -Djava.awt.headless=true"
CATALINA_HOME=/opt/tomcat/apache-tomcat-8.0.
. $CATALINA_HOME/bin/catalina.sh start

shutdown.sh

CATALINA_HOME=/opt/tomcat/apache-tomcat-8.0.
. $CATALINA_HOME/bin/catalina.sh stop

最新文章

  1. zoeDylan.ImgChange 图片切换插件
  2. iOS中--NSArray调用方法详解 (李洪强)
  3. Java多个数字求和输出
  4. select--from--where--group by--having--order by 依次顺序
  5. Poj OpenJudge 百练 1062 昂贵的聘礼
  6. Linux下root密码忘记的解决办法
  7. bzoj2506
  8. CF402E Strictly Positive Matrix 传递闭包用强连通分量判断
  9. B450配置
  10. hdu 4393 Throw nails(STL之优先队列)
  11. ViewPageAsImage
  12. 如何在sublime中安装使用eslint
  13. 2017总结&2018展望
  14. android studio 转为eclipse快捷键后还存在的问题汇总
  15. 转载,matla滤波函数
  16. flutter Dynamic updates 热更新 版本更新
  17. java第三章多态
  18. hdu 2845 Beans(最大不连续子序列和)
  19. javascript篇-浅拷贝与深拷贝
  20. DNS服务器介绍及设置

热门文章

  1. Java NIO和IO的区别(转)
  2. 强大的模板引擎开源软件NVelocity
  3. 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记
  4. java正则校验,密码必须由字母和数字组成
  5. 详解vue组件的keep-alive
  6. scikit-learn——快速入门 - daniel-D(转)
  7. python 听课笔记(二)
  8. 2017 年度码云新增项目排行榜 TOP 50,为它们打“call”
  9. python性能还是不错的
  10. Mongo如何在多个字段中查询某个关键字?