2017-07-31 6 views
4

ディレクトリウォッチをinotifyするために、5つのドメインのドキュメントルーツのリストをチェックする方法を探しています。それはこのPython Inotifyでフォルダのリストが見つかりました

DIRECTORY_TO_WATCH = "/home/serveradmin/"

のように働いている単一のフォルダに対して

私は私のサーバーのために再帰的にチェックする必要があるフォルダのリストを持っています。

私はちょうどPythonを学び始め、C言語の経験を積んでいます。開発の始まりです。

私にこれを手伝ってくれる人はいますか? /tmp/folderlist.txtという名前のファイルにある5つのフォルダに対して再帰的なinotify監視が必要です。

私が参照できる場所には、同様のコードがありますか?

答えて

0

フォルダのリストを作成し、存在するかどうかを確認するステートメントを作成します。

ので

import os 
list = ['folder1', 'folder2', 'folder3', 'folder4', 'folder5'] 
for i in list: 
    print("\nDoes", list[i], "exsist?", os.path.exists("/home/serveradmin/" + list[i])) 

が正しいフォルダ名のリストのアイテムを交換してください!

幸運を祈る!

+0

OPは、ディレクトリが変更されたときに通知を受けるように、inotifyを使用します。彼らはディレクトリが存在するかどうかをチェックしたくない。 –

+0

はい彼は正しい。ファイルの変更を再帰的に監視するためには、これをinotifyに渡す必要があります – Sumesh

+0

その他のオプションはありますか?また、Pythonコンバーターに最も有効で有用なCプログラミングを知っている人はいますか?そのようなものはありますか? – Sumesh

0

これは私が作業を開始したサンプルコードです。 "DIRECTORY_TO_WATCH"をファイルに追加するフォルダのリストに置き換える必要があります。したがって基本的にはtxtファイルで指定されたフォルダのリストになるので、そのファイルに将来のフォルダを追加し続け、毎回コアコードを追加する必要はありません。あなたがfswatchを使用して同様の結果を得ることができますMacOSXのため

inotifywait = ['inotifywait', 
       '--recursive', 
       '--quiet', 
       '--monitor', ## '--timeout', '1', 
       '--event', 
       'CREATE', 
       '--format', '%f'] 

from subprocess import PIPE, Popen 
p = Popen(inotifywait + paths, stdout=PIPE) 
for line in iter(p.stdout.readline, ''): 
    print(line) 

sudo apt-get install inotify-tools 

をとのようなものを試してください:

import time 
from watchdog.observers import Observer 
from watchdog.events import FileSystemEventHandler 

class Watcher: 
    DIRECTORY_TO_WATCH = "/path/to/my/directory" 

    def __init__(self): 
     self.observer = Observer() 

    def run(self): 
     event_handler = Handler() 
     self.observer.schedule(event_handler, self.DIRECTORY_TO_WATCH, recursive=True) 
     self.observer.start() 
     try: 
      while True: 
       time.sleep(5) 
     except: 
      self.observer.stop() 
      print "Error" 
関連する問題