我想知道我最常访问系统中的哪些文件,以衡量它们的重要性。我知道操作系统记录了上次访问文件的时间。有没有办法在每次访问文件时登录文本文件,可能按每小时或每天的时间尺度?我怀疑我可以使用 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,它听起来像是您正在寻找的。