나의 주요 목표는 Tomcat 디렉토리를 모니터링하여 사용자가 tomcat 디렉토리의 파일을 수정하는지 확인하는 것입니다.

나의 주요 목표는 Tomcat 디렉토리를 모니터링하여 사용자가 tomcat 디렉토리의 파일을 수정하는지 확인하는 것입니다.
#!/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를 통해 이벤트를 모니터링하는 프로세스가 자신이 트리거하는 이벤트와 다른 프로세스에 의해 트리거되는 이벤트를 구별하는 쉬운 방법은 없습니다.



관련 정보