【问题标题】:How do I write a shell-script to automatically start and restart tomcat every 15 minutes?如何编写一个 shell 脚本以每 15 分钟自动启动和重启 tomcat?
【发布时间】:2017-11-18 07:46:51
【问题描述】:

我正在尝试将我的 war 文件从 jenkins 部署到 Tomcat 7。我正在 jenkins 中编写一个 shell 脚本程序,每 15 分钟启动、关闭和重新启动一次 tomcat。我的代码出错了。谁能帮我解决这个问题?

*/15 * * * * /home/user_name/ Documents/tomcat/bin/startup.sh

【问题讨论】:

  • 你的程序在哪里?
  • 为什么?为什么每 15 分钟关闭一次?为什么不使用cron 安排呢?
  • start, shutdown and restart 按这个顺序?
  • 我是一个使用 shell 脚本的新手。我想要的只是创建一个 shell 脚本,将其放入 Jenkins 作业中,每天每隔 15 分钟运行一次,该脚本将检查 Tomcat 是否启动,如果没有,则自动启动它,而无需手动执行。

标签: shell jenkins tomcat7 jenkins-plugins


【解决方案1】:

以root身份:

echo "*/15 * * * * service tomcat restart" | crontab -

学习尝试:

man crontab
man 5 crontab
man service

如果您只需要一个脚本来“检查 [s] Tomcat 是否已启动,否则将自动启动 [s]

 service tomcat status || service tomcat start

【讨论】:

  • 我是一个使用 shell 脚本的新手,并且已经编写了一些小的 shell 脚本来复制文件等。现在我需要编写一个 shell 脚本来检查在同一台服务器上运行的 Tomcat 是否启动,如果没有,则运行 Tomcat 启动脚本。然后把这个脚本放到jenkins中。在这一点上,我没有什么想法,但我只是不知道如何将它们绑定到运行脚本中,甚至不知道它是否是正确的方向
  • 我只想创建一个 shell 脚本,将其放入 Jenkins 作业中,每天每隔 15 分钟运行一次,该脚本将检查 Tomcat 是否启动,如果没有,则自动启动它必须手动完成。
  • 我尝试使用该代码。它不承认它。你现在可以检查一下这个问题吗?
  • 尝试以有意义的方式格式化您的问题中的代码。您问题中代码的格式现在没有多大意义。你读过man service吗?
  • 是的,你现在可以看到了
【解决方案2】:

我也有同样的问题。当我的 Web 应用程序没有响应时,我想重新启动 tomcat。所以,我写了下面的脚本并添加到 crontab 中。

restart_tomcat.sh

#!/bin/bash

export JAVA_HOME=/opt/jdk1.7.0_79
export PATH=$PATH:/opt/jdk1.7.0_79/bin

status="$(/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_my_webapp| awk -F':' '{print($1)}')"

if [ "$status" != "HTTP OK" ]
then
    echo "`date` ---- Restarting tomcat"
    /path/to/apache-tomcat-8.5.6/bin/shutdown.sh
    sleep 15
    /path/to/apache-tomcat-8.5.6/bin/startup.sh
fi

crontab

*/10 * * * * /path/to/restart_tomcat.sh.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多