监视日志大小活动



如果文件大小停止增长,如何收到警报?

tail -f mytext.txt 

显示追加到文件的行。

mail -s "Alert" email@email.com 

可以发送警报。

我对如何将两者结合起来,或者是否有更有效的方法来监视文件的活动感到有些迷茫。

您可以简单地观察文件大小,然后记录当前大小,并在您选择的时间间隔后,再次检查大小,如果它没有增长,请发出警报。大致如下:

#!/bin/sh
file="/tmp/somefile"
size=$(wc -c < "$file")
interval="5"
while true; do
  sleep $interval
  newsize=$(wc -c < "$file")
  if [ $size -ge $newsize ]; then
    echo "AAAARGH!"
  fi
  size="$newsize"
done

用邮件命令或类似的东西替换 echo,用更合理的东西替换 echo 和文件,使其真正适合您。

另一种方法是通过 cronjob 来完成(如果间隔超过 1 分钟,某些系统支持间隔小于 1 分钟),并仅检查其上的 md5 值(某些系统只有 md5sum 命令,您需要调整)

启用 cronjob,它将每 10 分钟运行一次。

0,10,20,30,40,50 * * * * bash /FULL_PATH/detect.sh

这是检测脚本 detect.sh

#!/bin/bash
file="mytext.txt"
mv /var/tmp/md5OfFile /var/tmp/Oldmd5File
md5 $file > /var/tmp/md5OfFile
# or md5sum $file > /var/tmp/md5OfFile
diff /var/tmp/md5OfFile /var/tmp/Oldmd5File >/dev/null && echo "AAAARGH!" |mailx -s "Alert" email@email.com 

相关内容

  • 没有找到相关文章

最新更新