중요성을 측정하기 위해 내 시스템에서 가장 자주 액세스하는 파일이 무엇인지 알고 싶습니다. 나는 운영 체제가 파일에 마지막으로 액세스한 시간을 추적한다는 것을 알고 있습니다. 시간 단위 또는 일 단위로 파일에 액세스할 때마다 텍스트 파일을 기록하는 방법이 있습니까? 나는 chron 작업을 사용할 수 있다고 생각하지만 그것을 사용하는 데는 익숙하지 않습니다. 나는 OS X 솔루션을 선호합니다.
답변1
inotify를 사용할 수 있습니다. 아래 샘플 코드를 참조하세요.
#!/bin/sh
src_path=/directory/path/to/monitor
inotifywait --format '%:e %w%f' -e modify,delete,create \
--exclude '^.+(jpe?g|gif|ico|png|svg|pdf|pptx?|swpx|swp)$' \
-m -r "$src_path" | \
while read watched_filename EVENT_NAMES; do
case "$watched_filename" in
MODIFY)
echo "$EVENT_NAMES has been modified"
;;
CREATE)
echo "$EVENT_NAMES has been created"
;;
DELETE)
echo "$EVENT_NAMES has been deleted"
;;
*) echo "Unknown event, exiting";break
esac
done
MODIFY 이벤트에 대해 문자 메시지를 보내는 등 다양한 작업을 수행하도록 스크립트를 수정할 수 있습니다.
답변2
에 관한 기사입니다.fswatch 및 inotify. 저는 fswatch에 대해 잘 알지 못하지만 inotifywatch를 사용해 왔는데 여러분이 찾고 있는 것과 비슷할 것 같습니다.