2012-03-30 12 views
-1

Es gibt ein inotifywait Programm von Inotify-Tools, die Erkennung, Änderung, Öffnen und so weiter von überwachten Dateien oder Verzeichnisse zu erkennen, aber es gibt keine eindeutige " ausgeführt " Ereignis. Ich habe auch versucht fileschangeed Dienstprogramm, aber es scheint, dass, obwohl "erstellt" und "modifizierte" Ereignisse funktionieren, "ausgeführt" nicht. Gibt es eine Möglichkeit, über die Ausführung ausgewählter Programme oder Programme im ausgewählten Verzeichnis benachrichtigt zu werden?wie über eine Programmausführung in Linux benachrichtigt werden

Mein Problem ist, dass, obwohl ich "ausgeführten" Aktion auf Binärdateien mit "OPEN" inotify Ereignis überwachen kann, muss ich Prüfsumme dieser Binärdatei berechnen, so wäre es eine andere "OPEN" -Aktion und es bringt mich zu unendliche Rekursion. Natürlich kann ich inotifywait in einer Schleife verwenden und jedes Mal eine einzelne Aktion ausführen, anstatt den Überwachungsmodus zu verwenden, aber dann besteht die Möglichkeit, dass einige Ereignisse übersprungen werden.

Antwort

1

Soweit ich weiß, gibt es kein Ereignis in inotify zu tun, was Sie genau wollen. Ich bin mir nicht sicher, ob dies für Ihre Situation machbar ist, aber eine Sache, die Sie vermeiden könnten, ist die Verwendung der Option IN_ONESHOT, dann berechnen Sie Ihre Prüfsumme und rufen inotify erneut auf der Binärdatei auf, die sie ausgelöst hat im selben Skript.

+0

Ja, es scheint, dass der Hinweis unter Verwendung von C-Schnittstelle inotify der einzige Weg ist, um mein Ziel zu erreichen, aber die Frage nach auf die Ausführung ist immer noch relevant. – sknaumov

0

Wenn Sie sysdig installieren können, können Sie Ausführungen überwachen basierend auf den Befehlsnamen:

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