#!/bin/sh
#-----------------------------------------------------------------------------
#备份
#-----------------------------------------------------------------------------
file=$(date '+%m-%d')
#下面一行在控制台打印语句class文件
echo $(date) 备份/opt/wwwroot/WEB-INF/下的文件
cd /opt/backups/
mkdir $file
cd $file
cp /opt/wwwroot/WEB-INF/ . -r
#-----------------------------------------------------------------------------
#更新
#-----------------------------------------------------------------------------
#停止tomcat
echo $(date) 关闭tomcat
cd /opt/apache-tomcat-6.0./bin/
./shutdown.sh
echo tomcat停止运行
#判断Tomcat是否已经停止工作
echo $(date) 判断tomcat是否停止工作,如果没有,则间隔一段时间后强制关闭
int=
while (($int < ))
do
#a = show processes for all users 显示所有用户的进程 #u = display the process's user/owner 显示用户
#x = also show processes not attached to a terminal 显示无控制终端的进程
pid=$(ps aux|grep tomcat-|grep -v grep|awk '{print $2}')
#grep -v grep 防止列表出grep的进程号。
#awk '{print $2}' 一行一行的读取指定的内容, 以空格作为分隔符,打印第二个字段 (awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。)
if [ "$pid" = "" ]
then
echo $pid 不存在
int=
else
echo $pid 存在,休息20s
#let 后面接运算符表达式,不加引号应该也可以
let "int++"
sleep 20s
if [ "$int" = "" ]
then
echo $(date) 强制关闭tomcat
#强制杀掉进程 Ctrl-==Ctrl+C
kill - $pid
fi
fi
done
#备份log日志
echo $(date) 备份log日志
cd /opt/apache-tomcat-6.0./logs/
#把前面文件的内容剪切到后面的文件(后面文件的内容直接被override)
mv catalina.out catalina-$file.out
#拷贝更新文件
echo $(date) 把更新文件拷贝到运行目录
cd /home/shop/cc/
#cp * 复制当前文件下的所有文件
cp * /opt/wwwroot/ -r
#设置ulimit -n
echo $(date) 设置ulimit
cd /opt/apache-tomcat-6.0./bin/
#Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况通过ulimit设置各linux 用户的最大进程数
ulimit -n
#启动
echo $(date) 启动tomcat
./startup.sh
#-----------------------------------------------------------------------------

原文:http://blog.csdn.net/u014284252/article/details/51002174

shell脚本--部署应用到tomcat并启动tomcat的更多相关文章

  1. 用Eclipse的tomcat插件启动tomcat时报错:

    用Eclipse的tomcat插件启动tomcat时报错: FATAL ERROR in native method: JDWP No transports initialized, jvmtiErr ...

  2. springboot打包不同环境配置与shell脚本部署

    本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...

  3. 解决Jenkins用shell脚本部署后,Jenkins自动杀掉启衍生出来的守护进程

    Jenkins部署java项目遇到的问题: 1.Jenkins执行构建后,需要手动执行startup.sh,站点才能正常访问 产生原因: shell脚本发布时,会衍生进程,Jenkins默认会自动杀掉 ...

  4. shell脚本部署redis以及redis主从复制和redis-cluster集群

    # 关于脚本: # 使用root用户执行此脚本,提前关闭selinux: # 执行脚本之前,hostsIP内的IP修改成自己的机器IP: # hostsIp内的IP数量如果有增加或者减少,for循环的 ...

  5. shell脚本部署apache并能通过浏览器访问!

    第一步:导入httpd-2.2.17.tar包 第二步:创建一个test.sh文件(可在/root下) 第三步编写shell脚本 > 会重写文件,如果文件里面有内容会覆盖 >>这个是 ...

  6. 在腾讯云服务器上安装JDK+Tomcat并启动tomcat

    由于Java web项目需要使用到tomcat所以决定在腾讯云服务器(centos7.X)上安装JDK和tomcat,来部署我们的项目. 准备工具: 云服务器:centos7.x+ 本地连接服务器:X ...

  7. CentOS部署多台服务器JDK(shell脚本部署)

    部署7台新服务器的jdk,数量不算多,但也不打算一台一台的部署,写了个脚本执行 [ #!/bin/bash# JDK 安装包名jdk_packge="jdk-8u162-linux-x64. ...

  8. 使用shell脚本批处理控制大数据环境服务启动停止

    三台集群机器: master   192.168.168.200 slave1     192.168.168.201 slave2     192.168.168.202 1.start-maste ...

  9. Shell脚本与vi编辑器:vi启动与退出、工作模式、命令大全

    Vi简介 Vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序. Vi不是排版程序,只是一个纯粹的文本编辑程序. Vi是全屏幕文本编辑器,它没有菜单,只有命令. Vi不是基于窗口的,所以, ...

随机推荐

  1. 线性代数之——正交矩阵和 Gram-Schmidt 正交化

    这部分我们有两个目标.一是了解正交性是怎么让 \(\hat x\) .\(p\) .\(P\) 的计算变得简单的,这种情况下,\(A^TA\) 将会是一个对角矩阵.二是学会怎么从原始向量中构建出正交向 ...

  2. 编译安装hadoop2.6.3

    一.安装环境 1.1  JAVA  安装java1.7 下载jdk1.7: [root@node1~]# wget http://download.oracle.com/otn-pub/java/jd ...

  3. windows远程连接失败问题排查思路

    一般情况下,对WIN7的远程连接只需要5步即可完成远程连接的设置: 1).用户是否设置了密码 2).计算机属性-允许远程登录 3).设置计算机永不睡眠 4).关闭防火墙或者设置入站规则 5).排查Re ...

  4. java的参数传递

    1按值传递:传递的是原始值的副本,而不是原始值的内存地址 基本数据类型是传原始值的副本 class Test02 { public static void main(String[] args) { ...

  5. TCP系列15—重传—5、Linux中RTO的计算

    之前我们介绍的都是协议中给出的RTO计算方法,下面我们看一下linux实现中RTO的计算方法.在linux中维护了srtt.mdev.mdev_max.rttvar.rtt_seq几个状态变量用来计算 ...

  6. C# .net 调用QQ邮箱

    public static void QQfs() { try { MailMessage mm = new MailMessage(); MailAddress Fromma = new MailA ...

  7. idea dubbo jar error:cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明

    声明: 出现这个错误的情形是,在idea开发环境里面运行是没有问题的,使用哦idea自带的打包工具生成jar之后,运行jar的时候报的这个错误,如果不是这个情况,这篇文章可能不适用. 主要的原因是sp ...

  8. OO的五大原则

    OO的五大原则是指SRP.OCP.LSP.DIP.ISP 1. SRP(Single Responsibility Principle 单一职责原则) 单一职责很容易理解,所谓单一职责,就是一个设计元 ...

  9. 向今天要结果; 向明天要动力 eclipse不自动弹出提示(alt+/快捷键失效)

    最近公司电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下“alt+/”键还会产生提示,但是当我在java项目中邪main方法和syso的时候,“alt+/”则会失效,今天在 ...

  10. Delphi DBGridEH中,选中行、列、单元格

    // 新增行后,默认首列 procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);begin  with DBGridEh1 do  begi ...