Обнаружение изменений каталога в unix - PullRequest
4 голосов
/ 03 марта 2010

Как я могу отслеживать изменения определенного каталога в UNIX? Например, я запускаю некоторую утилиту, которая создает несколько файлов во время ее выполнения. Я хочу знать, какие именно файлы были созданы во время одного конкретного запуска. Есть ли простой способ получить такую ​​информацию? Проблема в том, что:

  1. Я не могу сбросить содержимое каталога после выполнения скрипта
  2. Файлы, созданные с именем, в котором хеш является составной частью. Нет возможности получить этот хеш из скрипта для последующего поиска.
  3. Возможно одновременное выполнение нескольких сценариев, я не хочу видеть файлы, созданные другим процессом, в одной папке.

Обратите внимание, что я не хочу знать, был ли изменен каталог, как указано здесь , мне нужны имена файлов, которые в идеале можно подбирать для соответствия конкретному шаблону.

Ответы [ 5 ]

6 голосов
/ 03 марта 2010

Вам необходимо подписаться на уведомления об изменении файловой системы .

3 голосов
/ 03 марта 2010

Вы можете использовать strace -f myscript для отслеживания всех системных вызовов, выполненных скриптом, и использовать grep для фильтрации системных вызовов, создающих новые файлы.

3 голосов
/ 03 марта 2010

Вы должны использовать что-то вроде FAM, gamin или inotify, чтобы определить, когда файл создан, закрыт и т. Д.

0 голосов
/ 03 марта 2010

Вы можете использовать систему аудита Linux. Вот ссылка с инструкциями:

http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html

0 голосов
/ 03 марта 2010

Вы можете использовать команду script для отслеживания запущенных команд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...