pyinotify — python модуль, с помощью которого мы можем настроить монитоинг изменений нужной нам директории в системе.
Во многих дистрибутивах модуль доступен в репозиториях системы, кроме того, его можно установить с помощью pip. Выбираем любой, удобный нам способ и ставим:
# yum install python-inotify
# pip install pyinotify
Те кто на python пишет, могут сразу же ознакомиться и с примерами использования модуля. Их можно найти на Github странице проекта, а в CentOS опять же, поставить их из репозиториев:
# yum install python-inotify-examples
После установки, файлы будут доступны в /usr/share/pyinotify/
Использование pyinotify.
Для мониторинга активности в нужной нам директории выполняем команду:
# python -m pyinotify /var/www/sysadmin/data/
Откроем ещё одну вкладку терминала, создадим тестовый файл, изменим его и удалим. В результате, информация об этих изменениях будет показана нам:
<Event dir=False mask=0x100 maskname=IN_CREATE name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x20 maskname=IN_OPEN name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x4 maskname=IN_ATTRIB name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x8 maskname=IN_CLOSE_WRITE name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x2 maskname=IN_MODIFY name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x20 maskname=IN_OPEN name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x2 maskname=IN_MODIFY name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x8 maskname=IN_CLOSE_WRITE name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 > <Event dir=False mask=0x200 maskname=IN_DELETE name=test.file path=/var/www/sysadmin/data pathname=/var/www/sysadmin/data/test.file wd=1 >
Для того, что бы модуль мониторил вложенные директори (-r), и для того что бы он добавлял свежесозданные директории (-a) к мониторингу, можно запустить его так:
# python -m pyinotify -a -r /var/www/sysadmin/data/
Получить только конкретные события мы можем применив ключ -e, и перечислив их через запятую. Ключ -f отключит цветной вывод результатов, а -s позволит нам статистику визуализировать.
За полным списком доступных опций можно обратиться к команде:
# python -m pyinotify -h
- Для контроля изменения файлов в системе, можно воспользоваться утилитой tripwire.
One thought on “pyinotify”