2012-03-30 5 views
-1

Существует inotifywait программы от Inotify-инструментов, который помогает обнаружить создание, изменение, открытие и т.д. из отслеживаемых файлов или каталогов, но нет четкой " выполненный " событие. Я также попробовал fileschanged, но кажется, что, хотя «созданные» и «измененные» события работают, «выполнено» нет. Есть ли способ получить уведомление о выполнении выбранных программ или программ в выбранном каталоге?как получать уведомления о выполнении программы в Linux

Моя проблема в том, что хотя я могу контролировать «выполненное» действие в двоичных файлах с событием inotify с «ОТКРЫТО», мне нужно вычислить контрольную сумму этого двоичного файла, чтобы это было другое действие «ОТКРЫТО», и это привело меня к бесконечной рекурсии. Конечно, я могу использовать inotifywait в цикле и каждый раз получать одно действие, а не использовать режим мониторинга, но тогда есть вероятность, что некоторые события будут пропущены.

ответ

1

Насколько я знаю, в inotify нет никакого события, чтобы делать то, что вы хотите. Я не уверен, что это возможно для вашей ситуации, но одна вещь, которую вы могли бы попытаться избежать проблемы с рекурсией с «открытым», - это использовать параметр IN_ONESHOT, затем вычислить свою контрольную сумму и повторно вызвать inotify в двоичном файле, который вызвал ее в том же скрипте.

+0

Да, кажется, что с помощью интерфейса C для Inotify является единственным способом для достижения своей цели, но вопрос об уведомлении по исполнению по-прежнему актуальны. – sknaumov

0

Если вы можете установить sysdig, вы можете следить за расстрелы на основе имени команды:

sudo sysdig "proc.name=foobar and evt.type=execve"