0

共有フォルダー内のファイルを削除したクライアント PC の IP またはホスト名を出力するにはどうすればよいですか?このコードは機能していますが、共有フォルダー内のファイルを削除した他の PC ではなく、自分の IP とホスト名のみを出力します。Centos 6.3を使用しています。Sambaを使用してフォルダーを共有しています。Python 2.7PYinotifyスクリプトを使用しています。

これは私のコードです

import pyinotify

wm = pyinotify.WatchManager()

mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE

class EventHandler(pyinotify.ProcessEvent):

    def process_IN_CREATE(self, event): 
    print "",now.strftime("%b-%d-%Y @ %I:%M %p"),"  "   ,socket.gethostname()," ","Create ","  ",event.name,"  ",event.path

    def process_IN_DELETE(self, event):
    print "",now.strftime("%b-%d-%Y @ %I:%M %p"),"  "    ,socket.gethostname()," ","Shift+Del","",event.name," ",event.path

handler = EventHandler()

notifier = pyinotify.Notifier(wm, handler)

wdd = wm.add_watch('/echoshare', mask, rec=True)

auto_add = '/echoshare'

notifier.loop()
4

1 に答える 1

1

(py)inotify とは何かを誤解していると思います。これは、ファイルシステム イベントを監視する方法であり、ローカルファイルシステムで Samba サーバーによって実行された操作に関する情報を取得します。

inotify のドキュメントを見ると、inotify_event 構造体には操作を実行しているユーザーに関する情報が含まれていないことがわかります。

問題の最も簡単な解決策は、Sambaサーバーでイベントログを有効にし、生成されたイベントを解析して必要な情報を取得することだと思います

于 2012-11-29T14:06:10.193 に答える