Nenhuma idéia sobre uma solução shell, mas (assumindo o Linux 1
) inotify
poderia ser o caminho a seguir ... veja este exemplo imitandotail -F
(usando pyinotify
), talvez ele possa ser usado como base para seguir um diretório inteiro .
Em geral, inotify
pode monitorar diretórios (citando man 7 inotify
)
Os seguintes bits podem ser especificados na máscara ao chamar inotify_add_watch (2) e podem ser retornados no campo da máscara retornado por read (2):
IN_ACCESS File was accessed (read) (*).
IN_ATTRIB Metadata changed, e.g., permissions, timestamps,
extended attributes, link count (since Linux 2.6.25),
UID, GID, etc. (*).
IN_CLOSE_WRITE File opened for writing was closed (*).
IN_CLOSE_NOWRITE File not opened for writing was closed (*).
IN_CREATE File/directory created in watched directory (*).
IN_DELETE File/directory deleted from watched directory (*).
IN_DELETE_SELF Watched file/directory was itself deleted.
IN_MODIFY File was modified (*).
IN_MOVE_SELF Watched file/directory was itself moved.
IN_MOVED_FROM File moved out of watched directory (*).
IN_MOVED_TO File moved into watched directory (*).
IN_OPEN File was opened (*).
Ao monitorar um diretório , os eventos marcados com um asterisco (*) acima podem ocorrer para arquivos no diretório; nesse caso, o campo de nome na estrutura inotify_event retornada identifica o nome do arquivo no diretório.
(... e pyinotify
segue de perto essas opções)
1
: BSDs têm uma coisa semelhante kqueue
,. Talvez uma solução de plataforma cruzada é alcançável usando GIO ( ligações Python ) como camada de abstracção, uma vez que pode, ao lado inotify
, também utilizarkqueue