Библиотека сайта 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: