fswatch является кросс-платформенным программным обеспечением, для мониторинга изменений файлов и директорий. С помощью данного софта можно получать уведомления и тем самым отслеживать изменения файлов и каталогов на сервере.
В различных операционных системах он выполняет до четырех типов мониторов:
Особенности fswatch
Как установить 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. На этом всё, надеюсь, изложенный здесь материал окажет вам пользу, и у вас не возникло серьезных проблем с установкой.