О web-разработке
и даже немного больше...

fswatch – мониторинг изменений файлов и директорий в Linux

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

В различных операционных системах он выполняет до четырех типов мониторов:

  • Монитор процесса сборки в API журнала событий файловой системы Apple OS X;
  • Монитор на основе Kqueue, интерфейс уведомлений присутствует в операционной системе FreeBSD 4.1, кроме того поддерживается на многих *BSD системах, OS X включительно;
  • Монитор на основе файла событий Notification API ядра Solaris плюс его доп. возможности;
  • Монитор на основе Inotify, подсистемы ядра, которая показывает изменения файловой системы в приложениях.
  • Монитор, основанный на ReadDirectoryChangesW, в ОС Windows API записывающий изменения в каталог.
  • Монитор регулярно проверяет статус файлов в файловой системе, хранит время модификации файлов в памяти, а так же позволяет в ручном режиме определить изменения в файловой системе (там, где есть в этом необходимость).

Особенности fswatch

  • Поддерживает несколько специфичных для ОС API;
  • Позволяет рекурсивный мониторинг директорий;
  • Возможность фильтрации путей, посредством регулярных выражений;
  • Поддержка настраиваемого формата записи;
  • Так же, он поддерживает периодические события простоя;

Как установить fswatch в системе Linux
К сожалению, в стандартных системных репозиториях Linux пакет fswatch отсутствует. Поэтому мы можем установить fswatch, собрав его из исходников, далее мы рассмотрим краткую инструкцию, как это сделать.

Скачаем последнюю версию fswatch с помощью команды wget, распакуем архив, и начнем процесс сборки.

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz
$ tar -xvzf fswatch-1.9.3.tar.gz
$ cd fswatch-1.9.3
$ ./configure
$ make
$ sudo make install

Важный момент: Для сборки пакета у вас так же предварительно должен быть установлен компилятор GNU GCC (C и C++) а так же средства разработки (требуется установка на Debian/Ubuntu). Если у вас нет компилятора, то их следует установить, для каждого дистрибутива по-своему соответственно:

# yum group install 'Development Tools'		[Для CentOS/RHEL]
# dnf group install 'Development Tools'		[Для Fedora 22+]
$ sudo apt-get install build-essential          [Для Debian/Ubuntu]

При выполнении команды fswatch в дистрибутивах Debian/Ubuntu вы можете с подобным сообщением об ошибке:

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

Для исправления данной ошибки вам следует выполнить команду ниже, которая обновит ссылки и кэш для динамических библиотек, перед тем как можно будет начинать использовать команду fswatch.

$ Sudo LDCONFIG

Как использовать fswatch на Linux?
Для запуска пакета fswatch используется такой синтаксис:

$ fswatch [option] [path]

В Linux рекомендуется использовать для просмотра монитор inotify, просмотреть список мониторов мы можете с помощью опций -M или ‑‑list-monitors:

$ fswatch -M
$ fswatch --list-monitors

Далее приведенная ниже команда позволяет наблюдать изменения в директории (/home/href), показ событий будет выводиться каждые 4 секунды. Опция –l или –latency устанавливает задержку в секундах, по умолчанию является 1 секунда.

$ Fswatch -l 4.

Далее следующая команда, отслеживает изменения в файле /var/log/auth.log каждые 5 секунд:

$ Fswatch -l 5 /var/log/auth.log

Использование опции –t или ‑‑timestamp выводит временную метку в формате timestamp, чтобы отображать время в формате UTC нужно использовать опцию –u или ‑‑utf-time. Так же можно использовать формат отображения времени используя –f или ‑‑format-time:

$ Fswatch --timestamp /var/log/auth.log

Используя опции –x или ‑‑event-flags при вызове fswatch вы можете задавать разделитель события и пути. Опция ‑‑event-field-separator позволит выводить события с использованием специфичного разделителя.

$ fswatch --events-flags ~ /var/log/auth.log

Чтобы вывести числовое значение идентификатора события в вашей домашней директории и в файле /var/log/auth.log используйте опцию –n или ‑‑numeric.

$ fswatch --numeric ~ /var/log/auth.log

Вы можете посмотреть более подробную информацию о возможности использования пакета, для этого вам следует набрать команду:

$ man fswatch

Чтобы получить дополнительную информацию и возможности использования fswatch вы так же можете посетить страницу на GitHub. На этом всё, надеюсь, изложенный здесь материал окажет вам пользу, и у вас не возникло серьезных проблем с установкой.

Опубликован: 23.10.2016 г.

См. также:

Поиск больших файлов в Linux
Bash: mail: command not found
Установка и настройка mSMTP на Linux
Ставим nginx последней версии на Linux
SFTP-обмен файлами между серверами
Время последнего перезапуска системы Linux
Как подсчитать размер файлов и папок в Linux?
12 полезных опций использования команды «df» в Linux

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

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

Комментарии
  • Загрузка...
Друзья сайта