使用shell脚本,每分钟检测一次Tomcat是否启动,如果没有启动就启动
- 工作小总结
- 时间:2023-11-14 15:04
- 1862人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
需求:
请使用shell脚本,写一个每分钟检测tomcat是否启动。如果没启动,执行/tomcat_home/bin/startup.sh启动tomcat.
注意下面脚本中tomcat_home是不到bin目录的
shell脚本如下:
#!/bin/bash TOMCAT_HOME="/tomcat_home" CATALINA_HOME="$TOMCAT_HOME/bin/catalina.sh" # 检测Tomcat是否在运行 is_tomcat_running() { ps aux | grep -v grep | grep "$CATALINA_HOME" > /dev/null } # 启动Tomcat start_tomcat() { echo "Starting Tomcat..." $TOMCAT_HOME/bin/startup.sh } # 检测Tomcat是否在运行 if is_tomcat_running; then echo "Tomcat is running." else # Tomcat未运行,启动Tomcat start_tomcat fi
将上述代码保存为一个.sh文件(比如check_tomcat.sh
),然后添加执行权限:
chmod +x check_tomcat.sh
接着,你可以使用cron定时任务每分钟执行该脚本。打开cron表编辑器:
crontab -e
然后添加以下行,保存并退出:
* * * * * /path/to/check_tomcat.sh
这样,每分钟cron任务将运行check_tomcat.sh
脚本,检测Tomcat是否在运行,如果没有运行,则启动Tomcat。确保替换脚本中的/tomcat_home
为你的实际Tomcat安装路径。
脚本执行
执行这个Shell脚本可以分为两个步骤:
保存脚本文件: 将脚本保存到一个文件中,比如
check_tomcat.sh
。给脚本文件添加执行权限: 在终端中运行以下命令:
chmod +x check_tomcat.sh
这个命令将赋予
check_tomcat.sh
文件执行权限。运行脚本: 执行脚本的命令是:
./check_tomcat.sh
如果你的脚本在当前目录,你可以直接运行上述命令。如果脚本在其他目录,你需要提供脚本的完整路径。例如,如果脚本在 /path/to/check_tomcat.sh
,则运行:
/path/to/check_tomcat.sh
确保你对脚本文件具有执行权限,并替换脚本中的变量为你实际的Tomcat安装路径。如果你想让脚本每分钟运行一次,你可以将它添加到crontab中,如我之前的回答中所述。
错误信息
在执行check_tomcat.sh命令的时候,错误如下:
-bash: ./check_tomcat.sh: /bin/bash^M: bad interpreter: No such file or directory
这个错误通常是由于在Windows系统上编辑脚本文件并将其传输到类Unix系统(如Linux)上时引起的换行符格式问题。Windows使用CRLF(回车换行)作为行结束符,而Unix使用LF(仅换行)。
你可以使用 dos2unix
命令来转换文件格式。在终端中运行以下命令:
dos2unix check_tomcat.sh
执行上格式转换后,在执行启动命令,就可以看到成功了。如下图:
扩展:
如果你在Linux系统上没有安装 dos2unix
,你可以使用 sed
命令来执行相同的操作:
sed -i 's/\r$//' check_tomcat.sh
上一篇: Thymeleaf 下拉框选择