我不是编写 shell 脚本的专家,但我也在寻找一个非常具体的解决方案。
操作系统:CentOS 版本 5.2(最终版)
我有一个 Java 独立程序,它不断将(所有 System.out.println)写入日志文件。由于某些未知原因,这个 Java 独立程序在我的服务器中的某个时间点停止工作,最终日志写入也停止工作。
我想要一个脚本,用于检查日志文件的最后修改日期和时间以及服务器中的当前日期和时间。如果时间差超过 5 分钟,我想立即向收件人列表发送电子邮件。这样我就会知道这个 Java 独立程序何时停止工作。
我将把这个脚本移到 crontab 并使其每 1 分钟运行一次,以便整个过程自动化。
日志文件位置:/usr/local/logs/standalone.log
答案1
然而,我很无聊...就像:
#!/bin/sh
SUBJECT="blah is more than 5 minutes old!"
EMAIL="[email protected]"
MSG="/tmp/emailmessage"
MOD=`stat --printf=%Y $1`
NOW=`date +%s`
DIFF=$(($NOW-$MOD))
if [ $DIFF > 300 ]; then
echo "$1 is more than 5 minutes old!" > $MSG
mail -s "$SUBJECT" "$EMAIL" < $MSG
fi