fswatch - это кроссплатформенная утилита для мониторинга изменений файлов, которая отправляет уведомления при изменении содержимого заданных файлов или директории.
Она включает мониторы четырех типов для различных операционных систем:
Монитор, построенный на базе File System Events API из Apple OS X.
Монитор на базе kqueue, интерфейса уведомлений, представленного во FreeBSD 4.1, который также поддерживается множеством систем *BSD, включая OS X.
Монитор на базе File Events Notification API из ядра Solaris и его производных.
Монитор на базе inotify, подсистемы ядра, передающей сведения об изменениях файловой системы приложениям.
Монитор на базе ReadDirectoryChangesW, Windows API, который записывает that records alters to a directory.
Монитор, который регулярно проверяет статус файловой системы, хранит в памяти время внесения изменений и вручную определяет изменения файловой системы (который работает в любой системе).
Возможности fswatch
Поддержка нескольких, специфических для разных ОС, API.
Рекурсивный мониторинг директорий.
Выполнение фильтрации путей с использованием регулярных выражений.
Поддержка настраиваемого формата записей.
Поддержка периодических событий idle.
Установка fswatch в Linux
К сожалению пакет fswatch не включен по умолчанию в системные репозитории ни одного из дистрибутивов Linux. Единственный способ получить последнюю версию 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++) и инструменты разработки (build-essential в Debian/Ubuntu). Если нет, установите их с помощью следующих команд:
В дистрибутивах Debian/Ubuntu при выполнении команды fswatch вы можете получить следующее сообщение об ошибке:
Чтобы решить эту проблему, выполните приведенную ниже команду. Она обновит кэш ссылок на динамически связываемые библиотеки.
$ sudo ldconfig
Использование fswatch в Linux
Общий синтаксис команды fswatch следующий:
$ fswatch [option] [path]
В Linux рекомендуется использовать стандартный монитор inotify, список доступных мониторов можно просмотреть с помощью опции -M или - list-monitors:
$ fswatch -M
$ fswatch --list-monitors
Приведенная ниже команда позволяет вам видеть изменения в текущей директории (/home/tecmint), сообщения будут направляться на стандартный вывод каждые 4 секунды.
Опция -l или --latency позволяет задать латентность в секундах, по умолчанию она составляет 1 секунду.
$ fswatch -l 4 .
Следующая команда мониторит изменения в файле /var/log/auth.log каждые 5 секунд:
$ fswatch -l 5 /var/log/auth.log
С помощью опции -t или --timestamp можно выводить время изменения для каждого события, с помощью опции -u или --utf-time можно задать вывод времени в формате UTC. Также форматировать время вывода можно с помощью опции -f или --format-time.
$ fswatch --timestamp /var/log/auth.log
Далее, опция x или --event-flagsм позволяет выводить флаги событий сбоку от пути. Вы также можете использовать опцию –event-field-seperator для вывода событий с использованием заданного разделителя.
$ fswatch --events-flags ~ /var/log/auth.log
Для вывода численного значения события, указывающего на изменение в вашей домашней директории и в файле /var/log/auth.log, используется опция -n или --numeric, как показано ниже.
$ fswatch --numeric ~ /var/log/auth.log
Детальную информацию по опциям и использованию fswatch можно получить из man-страницы утилиты:
$ man fswatch
Также для этого можно посетить репозиторий fswatch на Github:
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
Волк слабее льва и тигра, но в цирке волк не выступает!
Волк - единственный из зверей, который может пойти в бой на более сильного противника.
Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...
Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.