Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Pyinotify – мониторинг изменений файловой системы Linux в режиме реального времени

Оригинал: Pyinotify – Monitor Filesystem Changes in Real-Time in Linux
Автор: Aaron Kili
Дата публикации: 7 апреля 2017 года
Перевод: А. Кривошей
Дата перевода: декабрь 2017 г.

Pyinotify - это простой, но полезный модуль Python для мониторинга изменений файловой системы в реальном времени в Linux.

Системный администратор может использовать его для мониторинга изменений, происходящих в интересующей его директории, например, в каталоге веб-сайта или каталоге хранения данных приложения.

Утилита зависит от inotify (функция ядра Linux, включенная в ядро 2.6.13), которая уведомляет о событиях, ее уведомления экспортируются из пространства ядра в пространство пользователя через три системных вызова.

Назначение pyinotiy - связать три системных вызова с реализацией модуля поверх них, предоставляя общее и абстрактное средство для управления этими функциональными возможностями.

Зависимости

Для использования pyinotify ваша система должна включать:

Ядро версии не менее 2.6.13
Python версии не менее 2.4

Установка Pyinotify в Linux

Сначала проверьте версии ядра и Python, установленных в вашей системе:

# uname -r
# python -V

Если требования выполняются, для установки pynotify мы будем использовать pip. Если вы используете Python 2>= 2.7.9 или Python 3>= 3.4, загруженные с python.org, в большинстве дистрибутивов Linux Pip уже будет установлен, в противном случае установите его с помощью следующих команд:

[В дистрибутивах на базе CentOS]
# yum install python-pip     

[В дистрибутивах на базе Debian]
# apt-get install python-pip  

[В Fedora 22+]
# dnf install python-pip

Теперь установите pyinotify:

# pip install pyinotify

Будет установлена доступная версия из репозитория по умолчанию, если вы хотите установить последнюю стабильную версию pyinotify, можно клонировать репозиторий git, как показано ниже.

# git clone https://github.com/seb-m/pyinotify.git
# cd pyinotify/
# ls
# python setup.py install

Использование pyinotify

В примере ниже я запускаю мониторинг любых изменений в домашней директории пользователя tecmint (/home/tecmint) от лица root (с авторизацией через ssh), как показано на скриншоте:

# python -m pyinotify -v /home/tecmint

мониторинг изменений в директории

Далее мы хотим видеть любые изменения в веб-директории (/var/www/html/tecmint.com):

# python -m pyinotify -v /var/www/html/tecmint.com

Чтобы выйти из программы, просто нажмите Ctrl+C.

Примечание: если вы запустите pyinotify без указания директории, он будет отслеживать изменения в /tmp.

Более подробная информация о Pyinotify на Github: https://github.com/seb-m/pyinotify