fswatch é um monitor de mudanças de arquivos multiplataforma que recebe alertas de notificação quando o conteúdo dos arquivos ou diretórios especificados é alterado ou modificado.
Executa quatro tipos de monitoramento em diferentes sistemas operacionais, tais como:
- A monitor build on the File System Events API of Apple OS X.
- A monitor based on kqueue, a notification interface present in FreeBSD 4.1 also supported on many *BSD systems, OS X inclusive.
- A monitor based on File Events Notification API of the Solaris kernel plus its spin-offs.
- A monitor based on inotify, a kernel subsystem that shows file system modifications to apps.
- A monitor based on ReadDirectoryChangesW, a Windows API that records alters to a directory.
- A monitor that regularly check that status of file system, keeps file modification times in memory, and manually determine file system changes (which works anywhere, where stat can be used).
Recursos do fswatch
- Suporta várias APIs específicas do sistema operacional
- Permite monitoramento de diretórios recursivo
- Realiza filtragem de caminho usando expressões regulares de inclusão e exclusão
- Suporta formato de registro personalizável
- Além disso, suporta eventos de inatividade periódica
Como instalar o fswatch em sistemas Linux
Infelizmente, o pacote fswatch não está disponível para instalação nos repositórios do sistema padrão em nenhuma distribuição Linux. A única maneira de instalar a versão mais recente do fswatch é compilá-la a partir do arquivo fonte, conforme mostrado nas seguintes instruções de instalação.
Primeiro, obtenha o último arquivo tar do fswatch usando o seguinte comando wget e instale-o conforme mostrado:
$ 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
Importante: Certifique-se de ter o GNU GCC (Compilador C e C++) e as Ferramentas de Desenvolvimento (build-essential no Debian/Ubuntu) instaladas no sistema antes de compilar o fswatch a partir da fonte. Caso contrário, instale-as usando o seguinte comando em suas respectivas distribuições Linux.
# yum group install 'Development Tools' [On CentOS/RHEL] # dnf group install 'Development Tools' [On Fedora 22+ Versions] $ sudo apt-get install build-essential [On Debian/Ubuntu Versions]
Nas distribuições Debian/Ubuntu, você pode obter o seguinte erro ao executar o comando fswatch…
fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
Para corrigir isso, você precisa executar o comando abaixo, isso ajudará a atualizar os links e o cache das bibliotecas dinâmicas antes de começar a usar o fswatch.
$ sudo ldconfig
Como usar fswatch no Linux?
A sintaxe geral para executar o fswatch é:
$ fswatch [option] [path]
No Linux, é recomendável que você use o monitor inotify padrão, você pode listar os monitores disponíveis usando a opção -M
ou -list-monitors
:
$ fswatch -M $ fswatch --list-monitors

O comando abaixo permite que você observe as mudanças no diretório atual (/home/tecmint
), com eventos sendo entregues à saída padrão a cada 4 segundos.
A opção -l
ou --latency
permite definir a latência em segundos, sendo o padrão 1 segundo.
$ fswatch -l 4 .
O próximo comando monitora as mudanças no arquivo /var/log/auth.log a cada 5 segundos:
$ fswatch -l 5 /var/log/auth.log
Usando a opção -t
ou --timestamp
imprime o carimbo de data e hora para cada evento, para imprimir o tempo no formato UTC, use a opção -u
ou --utf-time
. Você também pode formatar o tempo usando a opção -f
ou --format-time
formato:
$ fswatch --timestamp /var/log/auth.log
Em seguida, -x
ou --event-flags
informa ao fswatch para imprimir as flags de evento ao lado do caminho do evento. Você pode usar a opção –event-field-separator para imprimir eventos usando o separador específico.
$ fswatch --events-flags ~ /var/log/auth.log
Para imprimir o valor numérico de um evento que indica alterações no seu diretório home e no arquivo /var/log/auth.log, utilize a opção -n
ou --numeric
como abaixo:
$ fswatch --numeric ~ /var/log/auth.log
Talvez você possa consultar a página do manual do fswatch para opções de uso detalhadas e informações:
$ man fswatch
Para mais informações e uso, visite o repositório do Github do fswatch: https://github.com/emcrisostomo/fswatch
Neste post, cobrimos uma utilidade simples de linha de comando para ajudar os usuários do Linux a serem notificados quando o conteúdo de arquivos especificados ou hierarquias de diretórios é modificado.
I hope all went well with the installation, if that is not the case for you, make an effort to reach us via the feedback form below. In addition, in case you have used it before, you may want to offer us some thoughts about your experience with fswatch.
Source:
https://www.tecmint.com/fswatch-monitors-files-and-directory-changes-modifications-in-linux/