2014-07-07 4 views
0

В системе UNIX все является файлом; если что-то не является файлом, это процесс. Это преимущество файловой системы Linux, но у вас есть вопрос здесь!как обнаружить файл изменения или удалить в системе lnux

Как определить, был ли файл создан или изменен или удален пользователем или программой?

Я пытаюсь сделать это с Inotify, но не работает с ядром версии 3.4 в распределении OpenWRT

благодаря

ответ

1

Пытались ли вы команду stat? Если вы не можете использовать inotify, вы, вероятно, не сможете использовать inotifywait, поскольку он использует интерфейс inotify.

Вы можете получить информацию о создании и изменении файла непосредственно с его вывода.

Удаленная часть (когда пользователь или программа удаляет файл) не может получить доступ к direclty. Unix предоставляет метки времени, времени и времени atime.

Atime - это время последнего доступа к содержимому. Ctime - это время последней модификации inode - метаданных. Mtime - это время последней модификации содержимого.

Так что нет времени, которое можно было бы получить непосредственно. Вы можете проверить, удален ли файл через временные метки каталога, в который был включен этот файл.

+0

он может обнаружить в реальном времени смену файла? это означает, что если файл изменен, он посылает сигнал скриптам, чтобы уведомить об этом изменение? –

+0

@Anis_Stack нет простого способа получить уведомления. Вы можете написать некоторые скрипты, которые, как я полагаю, будут выполнять команду stat, и использовать некоторые reg exps для захвата измененного времени – sestus