수정된 파일을 실시간으로 찾으시나요?

수정된 파일을 실시간으로 찾으시나요?

특정 순간에 파일을 생성하는 모든 애플리케이션에서 파일(특히 로그 파일)을 추적해야 합니다. 이러한 파일의 이름은 임의로 지정할 수 있습니다( log파일 이름이나 경로에 반드시 포함될 필요는 없음).

나는 fswatch -r /다음과 같은 일을 처리하기 위해 grep을 사용할 것이라고 생각합니다.

fswatch -r / | egrep --line-buffered -iv "//run|//sys"

그러나 나는 그것이 내가 언급한 목표에 대해 눈에 띄는 결과를 제공하지 않는다는 것을 발견했습니다... 단지 다음을 본 것뿐입니다:

...
inotify_add_watch: No space left on device
inotify_add_watch: No space left on device
inotify_add_watch: No space left on device
/
/
/
/
^C
$

이 경우에는 어떻게 작동합니까? 저는 실제로 그 일을 하고 있는 것이 아니기 fswatch때문에 언제든지 그러한 파일을 수정할 수 있는 방법을 찾을 수 있는 아이디어나 솔루션에 열려 있습니다.

콘솔에 나타나는 것을 보면 꽤 빨리 찾을 수 있기 때문에 "분출"에 대해서는 별로 관심이 없지만 해킹할 수 있도록 FS에서 일어나는 모든 일을 알고 싶을 뿐입니다. 중요한 일이 아닙니다.

답변1

을 설치하고 구성합니다 incrontab.

incron은 파일 시스템 이벤트를 모니터링하고 시스템 및 사용자 테이블에 정의된 명령을 실행하는 데몬 프로세스입니다.

파일을 편집하려면 아래에 사용자를 추가하세요 /etc/incron.allow(사용자 허용 incrontab) incrontab -e.

용법:

path mask command

path= 파일 경로

mask= 참조man inotify | less +/'inotify events'

command= 실행할 명령, 귀하의 경우 결과를 필터링하여 syslog파일이 수정된 정확한 시간을 알 수 있는 메시지일 수도 있습니다.

e,g: a 를 모니터링하려면 다음을 file사용하세요.

/path/to/file IN_MODIFY "message: your file is accessed"

수정을 통해 파일에 액세스하면 아래 메시지를 찾 /var/log/syslog거나 다음을 입력 합니다.jounalctl -xe

출력 예:

# grep "message: your" /var/log/syslog

Nov 22 10:05:04 hostname incrond[2263]: (USER) CMD ("message: your file is accessed")

편집하다

특정 폴더 아래의 모든 파일을 모니터링할 수 있습니다. 이것은 다음을 수행할 수 있는 샘플 메시지입니다. 업데이트 중인 모든 파일 나열:

path/to/folder IN_MODIFY echo "$$ $@ $# $% $&"

명령에는 다음과 같은 와일드카드 문자가 포함될 수 있습니다.

$$ - a dollar sign
$@ - the watched filesystem path (see above example)
$# - the event-related file name
$% - the event flags (textually)
$& - the event flags (numerically)

Archlinux:인크론

Incron을 사용하여 중요한 파일 및 폴더를 모니터링하는 방법

관련 정보