2017-04-24 11 views
0

inotify.butでファイルの変更を監視するのは簡単ですが、Inotifyはファイルに書き込むときにファイル名とファイルattrだけをIN_MODIFYイベントに返すことができます。新しい追加コンテンツの開始位置はどのように取得できますか変更ファイルの内容の長さは?これを解決するAPIはありますか?監視ファイルの変更posと長さ

答えて

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 
... 
+0

私が取得する差分または他のチェックサムのスクリプトを使用する必要はありません内容を変更する、私は知ってほしいapiはLinuxカーネルからこれを得るか、drbdのようなIOレベルで傍受するか? – Zeyu

+0

あなたにはそれほど難しくなく、本当にこの機能が必要な場合は、inotifyを修正しようとするかもしれません。 – Alex

関連する問題