2013-12-17 5 views
2

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

Это возможно даже с помощью fanotify? Есть что-то, что поможет мне сделать это?

ответ

3

В соответствии с linuxquestions.org threadfanotify не обнаруживает замену или удаление файла или его подкаталог, его переименование или удаление. Также см. baach.de discussion, в котором сравниваются (или упоминаются) inotify, dnotify, fam, Fanotify, tripwire, Python-fuse, и llfuse (python) среди других мониторов смены файлов или каталогов.

inotify поддерживает IN_DELETE и IN_DELETE_SELF событиями, и если вы работаете с ограниченным количеством каталогов, а не всей файловой системой, практично использовать.

Edit: Среди inotify ограничений или предостережений, упомянутые в своем веб-сайте, являются следующие:

inotify мониторинг каталогов не является рекурсивным: для контроля подкаталоги каталога, дополнительные часы должны быть созданы. Это может занять значительное время для больших деревьев каталогов. ... Если в этом дереве создается целая поддерева каталога и создается новый подкаталог, имейте в виду, что к моменту создания чата для нового подкаталога в этом подкаталоге могут быть созданы новые файлы. Поэтому вы можете сканировать содержимое подкаталога сразу после добавления часов.

+0

Я работаю со всей файловой системой, но я все равно проверю IN_DELETE и IN_DELETE_SELF от inotify. Почему вы считаете, что это не будет практично использовать его для всей файловой системы? Я хотел бы прочитать ваше мнение. –

+0

@RaydelMiranda, возможно, это нормально с небольшой файловой системой или если вы можете сделать постепенный запуск, но, как указано на man-странице (см. Редактирование) и в обсуждении baach.de, настройка часов для всех подкаталогов может занять в то время как. –

+0

Я не использовал inotify с самого начала, потому что он не может рекурсивно контролировать каталог. fanotify делает, но только при работе над точкой монтирования. См .: http://stackoverflow.com/questions/19528432/fanotify-recursivity-does-really-works/19543049#19543049 –

Смежные вопросы