Watchman - uma ferramenta de observação de arquivo e diretório para alterações
- 4612
- 969
- Randal Kuhlman
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.shCrie 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-ListVisualize 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 ~/binMostrar 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.
$ lsConfiguraçã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.
- Swatchdog - Vigilante de arquivo de log simples em tempo real no Linux
- 4 maneiras de assistir ou monitorar arquivos de log em tempo real
- FSWATCH - Monitora arquivos e mudanças de diretório no Linux
- Pyintify - Monitore as alterações do sistema de arquivos em tempo real no Linux
- 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.
- « Aprenda o operador de identidade Python e a diferença entre “==” e “is” operador
- Como configurar um cluster Redis no CentOS 8 - Parte 3 »