#!/bin/bash
watchDir="$1"
watchDir2="$2"
date1=$(date '+%Y-%m-%d-%H:%M:%S')
inotifywait -m -r --exclude \.log "$watchDir" "$watchDir2" -e attrib,delete,delete_self,close,close_write,close_nowrite,create,open,modify,move,moved_to,moved_from |
while read -r file; do
name=$(stat -c '%U' $file 2>/dev/null)
date=$(stat -c %Y $file 2>/dev/null | awk '{print strftime("%d-%m-%Y %T", $1,$2)}')
fileName=${file/* CREATE /}
echo "[${date%.*}]" "File: '$fileName' User: '$name'" >> /var/log/inotify/inotify-$date1.log
done
答え1
多くの研究の終わりに、私はこれらの制限が有用であることがわかりました。 inotifyを使用すると、ファイルを変更したユーザーを見つける方法はありません。
制限事項をお読みください。http://manpages.ubuntu.com/manpages/bionic/man7/inotify.7.html
制限事項と注意事項
inotify APIは、inotifyイベントをトリガーしたユーザーまたはプロセスに関する情報を提供しません。特に、inotifyを介してイベントを監視するプロセスが、自分がトリガーするイベントと他のプロセスによってトリガーされるイベントを区別する簡単な方法はありません。