tomcat定时启动脚本

1.先确定tomcat/bin目录下的startup和shutdown脚本能不能使用

[root@localhost bin]# ./startup.sh 
Cannot find /usr/local/tomcat8/bin/setclasspath.sh
This file is needed to run this program
复制代码

发现并不能直接使用

  • 这个问题的出现,表示环境变量没配置好

    (链接)关于tomcat环境方面的解释

  • 编辑环境变量 vi /etc/profile

  • 找到相关的配置

     \#export JAVA_HOME=/usr/java/jdk1.8
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CATALINA_BASE/lib 
    export CATALINA_BASE=/usr/local/tomcat8/
    export CATALINA_HOME=/usr/local/tomcat8/
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$CATALINA_BASE/bin
    复制代码
  • 其中的CATALINA_BASE和CATALINA_HOME并没有指向正确,因为我tomcat8目录下还有一层目录,修改即可

  • 使修改生效: . /etc/profile(. /中间有一个空格)

  • 再次运行: ./startup.sh,成功

2.写脚本

  • 将下面的代码直接保存到一个sh文件

    #!/bin/sh

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre

    pid=ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'

    echo $pid

    if [ -n "$pid" ];

    then

    {

    echo "==========tomcat is start============"

    '/usr/local/tomcat8/apache-tomcat-8.0.35/bin/shutdown.sh'

    sleep 5

    '/usr/local/tomcat8/apache-tomcat-8.0.35/bin/shutdown.sh'

    sleep 15

    pid=ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'

    if [ -n "$pid" ];

    then

    {

    echo "======to kill the tomcat pid $pid========"

    kill $pid

    sleep 3

    }

    fi

    echo "==========start tomcat============"

    '/usr/local/tomcat8/apache-tomcat-8.0.35/bin/startup.sh'

    }

    else

    {

    echo "==========tomcat is stop=====start======="

    '/usr/local/tomcat8/apache-tomcat-8.0.35/bin/startup.sh'

    }

    fi

其中要注意Java_home和tomcat脚本的路径是不是正确

  • 测试下正不正确

    [root@localhost auto_exec]# ./test.sh bash: ./test.sh: 权限不够

  • 赋予权限

    chmod 777 *.sh

  • 再次启动

    [root@localhost auto_exec]# ./test.sh ----------tomcat is stop----start=======

    Using CATALINA_BASE: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_HOME: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_TMPDIR: /usr/local/tomcat8/apache-tomcat-8.0.35/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92- 1.b14.fc23.x86_64/jre Using CLASSPATH: /usr/local/tomcat8/apache-tomcat-8.0.35/bin/bootstrap.jar:/usr/local/tomcat8/apache-tomcat-8.0.35/bin/tomcat-juli.jar Tomcat started.

  • 重启

    [root@localhost auto_exec]# ./test.sh 10785 ==========tomcat is start============ Using CATALINA_BASE: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_HOME: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_TMPDIR: /usr/local/tomcat8/apache-tomcat-8.0.35/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre Using CLASSPATH: /usr/local/tomcat8/apache-tomcat-8.0.35/bin/bootstrap.jar:/usr/local/tomcat8/apache-tomcat-8.0.35/bin/tomcat-juli.jar 一月 12, 2017 9:51:24 上午 org.apache.catalina.startup.Catalina stopServer 严重: Could not contact localhost:8005. Tomcat may not be running. 一月 12, 2017 9:51:24 上午 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java.net.ConnectException: 拒绝连接 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.(Socket.java:434) at java.net.Socket.(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:450) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:400) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:487)

    Using CATALINA_BASE: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_HOME: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_TMPDIR: /usr/local/tomcat8/apache-tomcat-8.0.35/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre Using CLASSPATH: /usr/local/tomcat8/apache-tomcat-8.0.35/bin/bootstrap.jar:/usr/local/tomcat8/apache-tomcat-8.0.35/bin/tomcat-juli.jar 一月 12, 2017 9:51:29 上午 org.apache.catalina.startup.Catalina stopServer 严重: Could not contact localhost:8005. Tomcat may not be running. 一月 12, 2017 9:51:30 上午 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java.net.ConnectException: 拒绝连接 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.(Socket.java:434) at java.net.Socket.(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:450) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:400) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:487)

    ======to kill the tomcat pid 10785======== ==========start tomcat============ Using CATALINA_BASE: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_HOME: /usr/local/tomcat8/apache-tomcat-8.0.35 Using CATALINA_TMPDIR: /usr/local/tomcat8/apache-tomcat-8.0.35/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre Using CLASSPATH: /usr/local/tomcat8/apache-tomcat-8.0.35/bin/bootstrap.jar:/usr/local/tomcat8/apache-tomcat-8.0.35/bin/tomcat-juli.jar Tomcat started.

证明脚本可以完美运行了

3.添加到定时任务

  • 使用crontab命令

    contab 具体用法

    其中crontab -e,添加新的定时任务

    输入*/5 0 * * * /home/auto_exec/test.sh 表示每五分钟执行一次

然后就大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值