1. #!/bin/sh
  2. #-----------------------------------------------------------------------------
  3. #备份
  4. #-----------------------------------------------------------------------------
  5. file=$(date '+%m-%d')
  6. #下面一行在控制台打印语句class文件
  7. echo $(date) 备份/opt/wwwroot/WEB-INF/下的文件
  8. cd /opt/backups/
  9. mkdir $file
  10. cd $file
  11. cp /opt/wwwroot/WEB-INF/ . -r
  12. #-----------------------------------------------------------------------------
  13. #更新
  14. #-----------------------------------------------------------------------------
  15. #停止tomcat
  16. echo $(date) 关闭tomcat
  17. cd /opt/apache-tomcat-6.0./bin/
  18. ./shutdown.sh
  19. echo tomcat停止运行
  20. #判断Tomcat是否已经停止工作
  21. echo $(date) 判断tomcat是否停止工作,如果没有,则间隔一段时间后强制关闭
  22. int=
  23. while (($int < ))
  24. do
  25. #a = show processes for all users 显示所有用户的进程
  26.  
  27. #u = display the process's user/owner 显示用户
  28. #x = also show processes not attached to a terminal 显示无控制终端的进程
  29. pid=$(ps aux|grep tomcat-|grep -v grep|awk '{print $2}')
  30. #grep -v grep 防止列表出grep的进程号。
  31. #awk '{print $2}' 一行一行的读取指定的内容, 以空格作为分隔符,打印第二个字段 (awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。)
  32. if [ "$pid" = "" ]
  33. then
  34. echo $pid 不存在
  35. int=
  36. else
  37. echo $pid 存在,休息20s
  38. #let 后面接运算符表达式,不加引号应该也可以
  39. let "int++"
  40. sleep 20s
  41. if [ "$int" = "" ]
  42. then
  43. echo $(date) 强制关闭tomcat
  44. #强制杀掉进程 Ctrl-==Ctrl+C
  45. kill - $pid
  46. fi
  47. fi
  48. done
  49. #备份log日志
  50. echo $(date) 备份log日志
  51. cd /opt/apache-tomcat-6.0./logs/
  52. #把前面文件的内容剪切到后面的文件(后面文件的内容直接被override)
  53. mv catalina.out catalina-$file.out
  54. #拷贝更新文件
  55. echo $(date) 把更新文件拷贝到运行目录
  56. cd /home/shop/cc/
  57. #cp * 复制当前文件下的所有文件
  58. cp * /opt/wwwroot/ -r
  59. #设置ulimit -n
  60. echo $(date) 设置ulimit
  61. cd /opt/apache-tomcat-6.0./bin/
  62. #Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况通过ulimit设置各linux 用户的最大进程数
  63. ulimit -n
  64. #启动
  65. echo $(date) 启动tomcat
  66. ./startup.sh
  67. #-----------------------------------------------------------------------------

原文: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. SpringCloud IDEA 教学 (三) Eureka Client

    写在前头 本篇继续介绍基于Eureka的SpringCloud微服务搭建,回顾一下搭建过程, 第一步:建立一个服务注册中心: 第二步:建立微服务并注入到注册中心: 第三步:建立client端来访问微服 ...

  2. php面试的那些“黑话”

    以下是一些常见的面试暗语,求职者一定要弄清楚其中蕴含的深意,不然可能“躺着也中枪”,最后只能铩羽而归. (1)请把简历先放在这,有消息我们会通知你的 面试官说出这句话,则表明他对你已经“兴趣不大”,为 ...

  3. “Hello World”团队第一周博客汇总

    时间:2017-10-13——2017-10-19 Scrum会议: 会议要求博客:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/1 ...

  4. 软工第三次作业——个人PSP

    9.22--9.26本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 预计时间 开始时间 结束时间 中断时间 实际用时 准备工作 学习重定向 ...

  5. java线程一之创建线程、线程池以及多线程运行时间统计

    线程和进程的基本概念 进程和线程是动态的概念.         进程是 "执行中的程序",是一个动词,而程序是一个名词,进程运行中程序的"代码",而且还有自己的 ...

  6. Spring Security 快速了解

    在Spring Security之前 我曾经使用 Interceptor 实现了一个简单网站Demo的登录拦截和Session处理工作,虽然能够实现相应的功能,但是无疑Spring Security提 ...

  7. LintCode-211.字符串置换

    字符串置换 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换. 置换的意思是,通过改变顺序可以使得两个字符串相等. 样例 "abc" 为 "cb ...

  8. <Effective C++>读书摘要--Templates and Generic Programming<一>

    1.The initial motivation for C++ templates was straightforward: to make it possible to create type-s ...

  9. Ubuntu 12.04.1 LTS 升级 PHP 从5.3 到 5.5

    #!/bin/bash # desc install php5.5 #add-apt-repository ppa:ondrej/php5 #apt-get install python-softwa ...

  10. 修改QQ各版本的默认保存位置(聊天记录)

    这几天没少折腾windows,都有点烦了,我是那种有强迫症的,只要知道的自己没有做到的会感觉到浑身不爽的因为系统重装了好几次,QQ也没少安装几次,我使用的是TM的QQ(没有 那么多烦人的广告,娱乐组件 ...