FAM - Monitorar alteração de arquivos

Como monitorar alteração de arquivos e diretórios em uma rede ou servidor? O FAM é uma das muitas respostas que podemos ter. FAM é o mesmo que File Alteration Monitor: ele observa arquivos e diretórios para você.

[ Hits: 32.657 ]

Por: Paulo Roberto Junior - WoLF em 09/02/2010


Cliente



Sobre o fileschanged:

É um projeto GNU/Linux, baseado em linha de comando, portanto NADA de interface gráfica. Sua função é reportar toda vez que arquivos são alterados.

Ele trabalha em conjunto com o FAM (SERVIDOR), pois ele é o cliente.

Para efetuar o download, segue o link:
Comando?

# wget http://sourceforge.net/settings/mirror_choices?projectname=fileschanged&filename=fileschanged/0.6.5/fileschanged-0.6.5.tar.gz

Abaixo segue um MAN do fileschanged:

Usage: fileschanged [OPTION...] [FILE]...
Monitors FILEs for alterations.  Display the filenames of FILEs that were
created, changed, deleted, started execution or finished executing.

   -s, --show=EVENT[,...]     Display created, changed, deleted, executing, or
                                     executed files (Default is "created,changed"
   -a, --show-all             Display all file events and the associated action
   -f, --files-to-monitor     (Default) Monitor the FILEs on the command line
   -l, --filelist=FILE        Monitor the list of filenames inside FILE
   -L, --dereference          Don't monitor symlinks, monitor what's pointed to
   -r, --recursive            Monitor subdirectories of directories
   -t, --timeout=N            Delay showing changed files for N seconds (Def=2)
   -p, --display-action       Display action when showing altered files
   -x, --exec=PROG            Run PROG when file altered (PROG action filename)
   -?, --help                 Give this help list
   --usage                Give a short usage message
   -V, --version              Print program version

LEMBRETE: Os arquivos devem existir antes do monitoramento. Ou seja, se um dia você criará uma função em seu programa, certifique-se que o programa irá gerar o log, arquivo, e logo depois (delay) ele possa ser monitorado.

Abaixo um exemplo de como monitorar os arquivos de seu $HOME:

fileschanged -r ~/

Ele irá monitorar tudo, de forma recursiva, ou seja, diretórios, sub, e por aí vai.

O que ele retornará?

Simples, ele fica na escuta (listen) e se algum arquivo foi alterado, ele OPA!!! Mostra caminho completo e nome do arquivo alterado., ficará algo assim:

fileschanged -r ~/
/home/paulo-wolf/mailbox
/home/paulo-wolf/mailbox2
/home/paulo-wolf/mailbox3

Outro exemplo? Que tal monitorar seu log... aperte ctrl + c para parar ok?!

fileschanged /var/log/messages
/var/log/messages
/var/log/messages
/var/log/messages

Monitorando toda vez que seu kernel é modificado:

find /usr/src/linux/ -print | grep "\.[ch]$" | fileschanged -l-

Com isso ele monitorará todos os .c e .h do /usr/src/linux.

Agora com scripts:

#!/bin/sh

if [ "x$1" == "x" ] ; then
   echo "Usage: `basename $0` "
   exit 1
fi

if [ ! -d $1 ]; then
   echo "ERROR: `basename $0`: $1 nao é um diretorio!"
   exit 2
fi

./fileschanged -r $1 | while read file; do
   tar -uPvf /tmp/tmp.tar $file >/dev/null 2>/dev/null
done
exit 0

Outro script:

#!/usr/local/bin/fileschanged -l

#Monitorar log do apache, web server
/etc/httpd/logs/access_log
/etc/httpd/logs/error_log

#Monitorar o XFREE
/var/log/XFree86.0.log

Algumas limitações segundo o desenvolvedor:

Em modo recursivo, o programa apenas reporta os arquivos alterados e não novos diretórios. Novamente explicando, ele somente monitora o que já existe.

Aconselho rodar o programa ou script em modo root.

Conclusão

Há um mundo de oportunidades para usar o FAM, alguns exemplos são:
  • Servidores Web
  • PHP
  • Monitoramento de clientes
  • Auditoria em arquivos

Espero que tenham gostado do artigo.

Se alguém tiver alguma nova informação, podem postar, terei o prazer de ver, e até aprender!

E galera, vamos ao VOL DAY 1, dia 6 de março. Eu estarei lá!

Abraços a todos.

Paulo Roberto Junior
www.paulojr.info

Página anterior    

Páginas do artigo
   1. Introdução
   2. Cliente
Outros artigos deste autor

Samba + DHCP + Webmin em 3 distribuições Linux

Scanner de segurança SKIPFISH do Google para sites

Twitter Clone - Floopo - Mais um Micro blogging open source

Rastrear e recuperar seu PC ou notebook roubado

Webmail Roundcubemail em PHP4/PHP5 com skins, LDAP e extras

Leitura recomendada

Criando uma rede entre o PC Virtual com Linux e o Windows usando Virtual PC

Owncloud com autenticação no Active Directory

Configuração de Servidor NFSv4 no CentOS 6

Criando um pacote TXZ no Slackware

Criando dispositivos RAID via software no Linux

  
Comentários
[1] Comentário enviado por removido em 09/02/2010 - 15:27h

Não entendi muito bem essa instalação:

$ sudo apt-get install fam gamin (instala o fam , gamin e suas dependências)

Afinal, o Gamin não é uma opção mais atual e melhor mantida que substitui o FAM? No Arch a dica é para desinstalar o FAM e instalar o Gamin no lugar.

T+

[2] Comentário enviado por dastyler em 10/02/2010 - 10:11h

Belo artigo poara quem trabalha com segurança da informação. Uso o gamm há algum tempo e gosto muito do memso.

Vlw!!

>)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts