# Apache Tomcat 日志监控
# 1. 检索 catalina.out 目录下的日志文件中是否包含关键字
# 2. 如果包含,停止 Tomcat 服务;
# 3. 删除包含关键字的 Tomcat 日志文件;
# 4. 重新启动 Tomcat 服务。
# Apache Tomcat 根目录
tomcatServerHome = "/usr/local/java/apache-tomcat-7.0.67"
# 需要检索的关键字
searchKeywords = "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully"
echo "Enter apache-tomcat server home: ${tomcatServerHome}"
# 进入 Apache Tomcat 根目录
cd ${tomcatServerHome}
# 检索关键字在 logs/catalina.out 目录下所有文件中出现的次数。
matchesTimes = `grep "${searchKeywords}" ./logs/catalina.out/* | wc -l`
if [ $matchesTimes -gt 0 ] ; then
# 如果出现了关键字
echo "We find fatal logs! We will shutdown the tomcat and restart, please hold on......"
# 检索出现关键字的文件名称数组
errorFiles = `grep -l "${searchKeywords}" ./logs/catalina.out/*`
echo "I will invoke tomcat shutdown.sh shell script, please hold on......"
# 为了防止文件被占用,先调用 tomcat 提供的 shutdown 脚本,停止 Tomcat。
./bin/shutdown.sh
echo "Tomcat was shutdown, i will delete error files!"
# 进入目录,准备删除包含关键字的文件。
cd ./logs/catalina.out
for item in $errorFiles
do
# 强制删除。
rm -f $item
done
# 退出到 Tomcat 根目录。
cd ../../
echo "The error files was deleted, I will re-start tomcat, please hold on......"
# 调用 Tomcat 提供的 Startup 脚本,重启 Tomcat。
./bin/startup.sh
else
# 没有满足条件的文件,直接退出。
exit
fi
[Linux Shell] 检索 Apache Tomcat 日志关键字,包含则重启
最新推荐文章于 2023-03-19 00:12:27 发布