监视日志大小活动

时间:2014-01-07 19:07:59

标签: linux bash unix

如果文件的大小停止增长,我怎样才能收到提醒?

tail -f mytext.txt 

显示的行被追加到文件中。

mail -s "Alert" email@email.com 

可以发送提醒。

我有点迷失在如何将两者结合起来或者是否有更有效的方法来监控文件的活动。

2 个答案:

答案 0 :(得分:2)

您可以只是观察文件大小,然后记录当前大小,在您选择的时间间隔后,再次检查大小,如果它没有增长,请进行警报。有点像:

#!/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,使用更合理的东西替换它,以使其真正适合你。

答案 1 :(得分:0)

另一种方法是通过cronjob来做(如果间隔超过1分钟,某些系统支持间隔不到1分钟),并且只检查md5值(某些系统只有md5sum命令,你需要调整)< / p>

启用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