pyinotify

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 позволит нам статистику визуализировать.

pyinotify

За полным списком доступных опций можно обратиться к команде:

# python -m pyinotify -h
  • Для контроля изменения файлов в системе, можно воспользоваться утилитой tripwire.

One thought on “pyinotify

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *