Watchman - uma ferramenta de observação de arquivo e diretório para alterações

Watchman - uma ferramenta de observação de arquivo e diretório para alterações

Vigia é um serviço de assistência a arquivos de código aberto e de plataforma cruzada que assiste a arquivos e registros ou executa ações quando eles mudam. É desenvolvido por Facebook e roda no Linux, OS X, FreeBSD e Solaris. Ele é executado em um modelo cliente-servidor e emprega a utilidade inotificada do kernel Linux para fornecer uma notificação mais poderosa.

Conceitos úteis de vigia

  • Ele assiste recursivamente a assistir uma ou mais árvores de diretório.
  • Cada diretório assistido é chamado de raiz.
  • Ele pode ser configurado através da linha de comando ou um arquivo de configuração escrito em formato JSON.
  • Ele registra alterações nos arquivos de log.
  • Suporta assinatura para alterações de arquivo que ocorrem em uma raiz.
  • Permite que você consulte uma raiz para alterações de arquivo desde a última vez que você verificou ou o estado atual da árvore.
  • Pode assistir a um projeto inteiro.

Neste artigo, explicaremos como instalar e usar vigia Para assistir a arquivos (monitorar) e gravar quando eles mudarem no Linux. Também demonstraremos brevemente como assistir a um diretório e invocar um script quando ele mudar.

Instalando o serviço Watchman File Watching no Linux

Vamos instalar vigia Serviço de fontes, então primeiro instale essas dependências necessárias libssl-dev, Autoconf, Autorake Libtool, SetupTools, Python-devel e Libfolly Usando o seguinte comando em sua distribuição Linux.

----------- No Debian/Ubuntu ----------- $ sudo apt install install autoconf automática de construção de python-setupsols python-dev libsl-dev lbtool ----------- Em Rhel/Centos ----------- # yum install Autoconf Automake Python-setuptools Python-devel OpenSSL-devel Libssl-devel Libtool # Yum GroupInstall 'Development Tools' ----------- Em Fedora ----------- $ sudo dnf install autoconf Automake python-setuptools OpenSSL-devel LibsSl-devel Libtool $ sudo dnf GroupInstall 'Development Tools' 

Uma vez que as dependências necessárias instaladas, você pode começar a construir o Watchman baixando seu repositório do GitHub, mova -se para o repositório local, configure, construa e instale -o usando os seguintes comandos.

$ git clone https: // github.com/Facebook/Watchman.Git $ CD Watchman $ Git Checkout V4.9.0 $ ./Autogen.sh $ ./Configure $ FAZE $ SUDO FAÇA A instalação 

Assistindo arquivos e diretórios com Watchman em Linux

Vigia pode ser configurado de duas maneiras: (1) através da linha de comando enquanto o daemon está sendo executado em segundo plano ou (2) por meio de um arquivo de configuração escrito no formato JSON.

Para assistir a um diretório (e.g ~/bin) Para mudanças, execute o seguinte comando.

$ watchman watch ~/bin/ 
Assista a um diretório no Linux

O comando a seguir grava um arquivo de configuração chamado estado sob /usr/local/var/run/watchman/-state/, no formato JSON, bem como um arquivo de log chamado registro no mesmo local.

Você pode visualizar os dois arquivos usando o comando CAT como show.

$ cat/usr/local/var/run/watchman/aaronkilik-state/state $ cat/usr/local/var/run/watchman/aaronkilik-state/log 

Você também pode definir que ação acionar quando um diretório está sendo vigiado por mudanças. Por exemplo, no comando a seguir, 'gatilho de teste'é o nome do gatilho e ~ bin/pav.sh é o script que será chamado quando as alterações forem detectadas no diretório sendo monitorado.

Para fins de teste, o Pav.sh O script simplesmente cria um arquivo com um Timestamp (eu.e arquivo.$ tempo.TXT) dentro do mesmo diretório em que o script é armazenado.

tempo = 'data +%y-%m-%d.%H:%m:%s 'arquivo de toque.$ tempo.TXT 

Salve o arquivo e faça o script executável como mostrado.

$ chmod +x ~/bin/pav.sh 

Para iniciar o gatilho, execute o seguinte comando.

$ watchman-gatilho ~/bin 'test-trigger'-~/bin/pav.sh 
Crie um gatilho no diretório

Quando você executa vigia Para ficar de olho em um diretório, é adicionado à lista de observação e para visualizá -lo, execute o seguinte comando.

$ Watchman Watch-List 
Visualize a lista de observação

Para visualizar a lista de gatilho para um raiz, Execute o seguinte comando (substitua ~/bin com o raiz nome).

$ Watchman Trigger-List ~/bin 
Mostrar lista de gatilho para uma raiz

Com base na configuração acima, cada vez que o ~/bin mudanças de diretório, um arquivo como arquivo.2019-03-13.23:14:17.TXT é criado dentro dele e você pode vê -los usando o comando ls.

$ ls 
Configuração do vigia de teste

Desinstalação do serviço de vigia no Linux

Se você quiser desinstalar vigia, Mova -se para o diretório de origem e execute os seguintes comandos:

$ sudo make desinstall $ cd '/usr/local/bin' && rm -f watchman $ cd '/usr/local/share/doc/watchman -4.9.0 '&& rm -f readme.Markdown 

Para mais informações, visite o repositório do Watchman Github: https: // github.com/Facebook/Watchman.

Você também gostaria de ler estes seguintes artigos relacionados.

  1. Swatchdog - Vigilante de arquivo de log simples em tempo real no Linux
  2. 4 maneiras de assistir ou monitorar arquivos de log em tempo real
  3. FSWATCH - Monitora arquivos e mudanças de diretório no Linux
  4. Pyintify - Monitore as alterações do sistema de arquivos em tempo real no Linux
  5. INAV - Assista Apache logs em tempo real no Linux

Vigia é um serviço de observação de arquivos de código aberto que assiste a arquivos e registros, ou desencadeia ações, quando eles mudam. Use o formulário de feedback abaixo para fazer perguntas ou compartilhar seus pensamentos conosco.