监视文件更改位置和长度

时间:2017-04-24 08:52:05

标签: linux monitoring

使用inotify监视文件更改很容易。但是当我写入文件时,Inotify只能回复带有文件名的IN_MODIFY事件和一些文件attr。如何在更改中获取新的添加内容的起始位置和内容长度文件?有没有api可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以为监视inotify日志创建其他脚本,并检查某些文件列表中的更改,然后记录日记大小更改,示例:

#!/bin/bash
for n in `cat /etc/inotify/special_files_list.conf`; do
   FOUND_CHANGES=`tail -n 10000 /var/log/inotify.log | grep `$cur_date_with_hour` | grep $n`
   PREVIOUS_FILE_SIZE=`/var/log/inotify-special.log | cut -d ';' -f 0`
   FILE_SIZE=stat -c "%s" `cut -d ';' -f 0,1`
   file_size_diff = `expr $PREVIOUS_FILE_SIZE - $FILE_SIZE`
   if [ file_size_diff !-eq 0 ]; then
      echo "$FOUND_CHANGES;" >> /var/log/inotify-special.log
   fi
done
...