avastreg
08-11-2008, 23:47
Ciao a tutti!
Avrei bisogno di una mano con questo inotify.
Inotify per chi non lo sapesse è un "watcher" che in pratica osserva le modifiche effettuate in una cartella (modifica/cancellazione di file bla bla bla) e li riporta sotto forma di segnali (credo).
Pyinotify è il wrapper (ho detto bene?) di inotify scritto in python, che permette di gestire questi report con python.
Io sto usando questo pyinotify perchè voglio sapere quando amule ha completato un file e l'ha spostato dalla cartella dei temp a quelli di default per i download.
Ho fatto funzionare un po' tutto, infatti se manualmente creo (o rimuovo) dei file nella cartella osservata, il report avviene. Ma quando amule ci crea un file, non viene fatto nessun report :mbe: :(
Non riesco a capire dove sta l'inghippo..
Ecco il codice python (per completezza):
from pyinotify import WatchManager, Notifier, \
ThreadedNotifier, ProcessEvent, IN_DELETE, \
IN_CREATE
import MySQLdb
wm = WatchManager() # Watch Manager
mask = IN_DELETE | IN_CREATE # watched events
class PTmp(ProcessEvent):
def process_IN_CREATE(self, event):
print "Creating:", event.pathname
//faccio qualcosa
def process_IN_DELETE(self, event):
print "Removing:", event.pathname
p = PTmp()
notifier = Notifier(wm, p)
wdd = wm.add_watch('/home/alle/Downloaded', mask, rec=True)
notifier.loop()
helpp :stordita:
Il codice in realtà non è fondamentale, penso sia più un problema alla base di unix e di questo inotify (ed è per questo che non l'ho messo in Programmazione).. che ne pensate?
Avrei bisogno di una mano con questo inotify.
Inotify per chi non lo sapesse è un "watcher" che in pratica osserva le modifiche effettuate in una cartella (modifica/cancellazione di file bla bla bla) e li riporta sotto forma di segnali (credo).
Pyinotify è il wrapper (ho detto bene?) di inotify scritto in python, che permette di gestire questi report con python.
Io sto usando questo pyinotify perchè voglio sapere quando amule ha completato un file e l'ha spostato dalla cartella dei temp a quelli di default per i download.
Ho fatto funzionare un po' tutto, infatti se manualmente creo (o rimuovo) dei file nella cartella osservata, il report avviene. Ma quando amule ci crea un file, non viene fatto nessun report :mbe: :(
Non riesco a capire dove sta l'inghippo..
Ecco il codice python (per completezza):
from pyinotify import WatchManager, Notifier, \
ThreadedNotifier, ProcessEvent, IN_DELETE, \
IN_CREATE
import MySQLdb
wm = WatchManager() # Watch Manager
mask = IN_DELETE | IN_CREATE # watched events
class PTmp(ProcessEvent):
def process_IN_CREATE(self, event):
print "Creating:", event.pathname
//faccio qualcosa
def process_IN_DELETE(self, event):
print "Removing:", event.pathname
p = PTmp()
notifier = Notifier(wm, p)
wdd = wm.add_watch('/home/alle/Downloaded', mask, rec=True)
notifier.loop()
helpp :stordita:
Il codice in realtà non è fondamentale, penso sia più un problema alla base di unix e di questo inotify (ed è per questo che non l'ho messo in Programmazione).. che ne pensate?