Моніторинг змін вмісту папки


18

Я можу стежити за змістом вмісту файла за допомогою команди tail -f

Чи існує подібний спосіб моніторингу змін структури каталогів, як файл-монітор файлу хвоста?

У мене тривалий процес, який додає файл до певного шляху в каталозі, і я хочу відслідковувати вхід файлів, як він (або вони) записують (-ла) до каталогів та підкаталогів.

Відповіді:


27

Система inotifyядра - це те, що вам потрібно.

  1. Встановити inotify-tools:

    sudo apt-get install inotify-tools
    
  2. Налаштування годинника:

    inotifywait /path/to/directory --recursive --monitor
    
  3. Сидіти спиною і спостерігати за результатами.


Від man inotifywait:

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-r, --recursive
   Watch all subdirectories of any directories passed as arguments.
   Watches will be set up recursively to an unlimited depth.   Sym‐
   bolic  links  are  not  traversed.  Newly created subdirectories
   will also be watched.

Ви можете використовувати --eventопцію для перегляду конкретних подій, таких як створення, модифікація тощо.


1
випадок, якщо хтось потрапив у цю проблему: Не вдалося переглянути; Верхня межа для інотифікованого годинника - тут. blog.sorah.jp/2012/01/24/inotify-limitation
johan.i.zahri

1
На одному з моїх серверів я виявив, що його вже не називають inotify-waitсправедливим inotifywait. Вони, мабуть, змінили назву, щоб видалити дефіс.
Jamesking56

@ Jamesking56 Я відредагував дефіс.
муру

Зауважте, у довідці для inotifywait йдеться про очікування варіантів перед шляхами до файлів.
Фелікс Домбек

8

--eventsце не фільтр, ви повинні використовувати --event. Наприклад, ось командний рядок для моніторингу створення / зміни подій:

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

Потім я бачу:

Setting up watches.  Beware: since -r was given, this may take a while!

А ось формат каналу:

[path] [event] [file]

напр

./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.