为了简化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

管理多tomcat实例的shell脚本的更多相关文章

  1. 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

    系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...

  2. Dockerfile 构建后端tomcat应用并用shell脚本实现jenkins自动构建

    Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zhaoweifeng "zh******tech.cn" ENV LANG en_U ...

  3. 快速部署tomcat项目的Shell脚本

    为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程. 发布次数多了,操作就比较繁琐 ...

  4. [转] 快速部署Tomcat项目的Shell脚本

    为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程. 发布次数多了,操作就比较繁琐 ...

  5. Linux 启动、停止、重启tomcat工具(Shell脚本)

    1.   启动 #!/bin/bash pids=`ps -ef | grep java | grep -w tomcat | awk '{print $2}'` #pids=`ps -ef | gr ...

  6. 【shell脚本实例】shell脚本统计单词频率、出现次数最多的n个单词

    1. 统计的对象words.txt,每个单词占一行(从简考虑了~) zjd@ubuntu:~/test$ cat word.txt used this count mysql count this u ...

  7. Shell脚本编写

    1.什么是Shell脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式.管 ...

  8. Shell脚本的调试技术

    编程中必不可少的一点就是调试,Shell脚本以其强大的功能令人向往,当然,它的强大之处不只是体现在语言的实现功能上,更强大的是它的调试功能,下面,我将以实例讲解Shell脚本的调试技术. 下面是我所用 ...

  9. 【运维】Shell -- 快速上手Shell脚本

    1.Shell概述 shell脚本是利用shell的功能所写的一个[程序(program)].这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式.管道命令与数 ...

随机推荐

  1. vim粘贴代码的时候,恶心的缩进.

    vim粘贴代码 如果有注释,那么粘贴后就惨不忍睹,类似于: 我粘贴代码到a.cpp,内容为: //打印函数 ) { ;i<length;i++){ ){ printf("0x &quo ...

  2. TortoiseSVN 和 VisualSVN

    ylbtech-Miscellaneos:TortoiseSVN 和 VisualSVN 1. TortoiseSVN 百科返回顶部 1-1.百科 TortoiseSVN 是 Subversion 版 ...

  3. matlib实现梯度下降法

    样本文件下载:ex2Data.zip ex2x.dat文件中是一些2-8岁孩子的年龄. ex2y.dat文件中是这些孩子相对应的体重. 我们尝试用批量梯度下降法,随机梯度下降法和小批量梯度下降法来对这 ...

  4. 奇怪吸引子---Chua

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  5. storm的一些相关文章

    文章可以看这些: https://www.cnblogs.com/zhaojiankai/p/7257617.html https://blog.csdn.net/wangshuminjava/art ...

  6. Android -- EventBus解析

    EventBus EventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递.传统的事件传递方式包括:Handler.BroadCastRece ...

  7. [转]Python机器学习工具箱

    原文在这里  Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: 比较成熟的(广播 ...

  8. Linux:磁盘挂载

    本来虚拟centos的服务器的磁盘分配的就不大,之前只分配了20G的样子,由于最近有装了不少软件,比如nifi压缩版就有1.2G的大小,一下子没有磁盘资源了.今晚就折腾在这事上了. [root@mas ...

  9. 纪念google reader

    2013年3月14日早上,谷歌在其官方博客宣布,2005年推出的 Google Reader 将在7月1号关闭. google reader的历史 以下搞自维基百科http://zh.wikipedi ...

  10. LXC 容器集chroot使用说明

    1.1 LXC是什么? 1.1.1 关于LXC LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level vi ...