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.302 ]

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


Introdução



Neste artigo, o foco não será estilo receita de bolo, onde instalamos um ambiente com servidores, programas, serviços e tudo mais. Portanto usarei uma linguagem mais solta, sem tantos detalhes.

FAM é uma sigla, que denomina File Alteration Monitor, ou em tradução livre -> Monitor de Alteração de Arquivos. É desenvolvida pela SGI - Silicon Graphics.

Ele observa arquivos e diretórios para você, alertando sob diversas formas para eventos tais como a remoção, alteração e execução.

FAM tem muitas funções para uso: um gerenciador de arquivos poderia usá-lo para controlar o conteúdo do diretório; outro aplicativo poderia lançar um processo em lote, quando chega um arquivo de um host remoto, quando algum arquivo é alterado, e inúmeras possibilidades.

Exemplo de algumas funções do FAM usando sua biblioteca no php.

Funções de FAM:
  • fam_cancel_monitor - Finalizando monitoramento
  • fam_close - Fecha uma conexão FAM
  • fam_monitor_collection - Monitora alterações de uma coleção de arquivos em um diretório
  • fam_monitor_directory - Monitora alterações em diretórios
  • fam_monitor_file - Monitora alterações em um arquivo
  • fam_next_event - Pega o próximo evento FAM pendente
  • fam_open - Abre uma conexão para o daemon FAM
  • fam_pending - Verifica por eventos FAM pendentes
  • fam_resume_monitor - Recomeça um monitoramento suspendido
  • fam_suspend_monitor - Suspende monitoramento temporariamente

O FAM é composto por duas partes:
  • famd - O nosso daemon, que provê notificações, escuta e requisições. Ele recebe parâmetros do fam.conf, geralmente localizado em /etc/fam.conf
  • libfam - Biblioteca de interface com o cliente.

Conteúdo e parâmetros do arquivo de configuração (/etc/fam.conf):

# untrusted_user = usuário sem autenticação, recebe valores de usuário unix, ou UID
untrusted_user = nobody

#Faz com que o daemon (famd), ignore RPC´s de clientes remotos, desabilitando ele tornará a aceitar
local_only = true

#Faz o daemon verificar o sistema de arquivos do host e do cliente.
xtab_verification = true

#Delay em segundos, para que se possa abrir uma nova requisição e conexão antes de fechar.
#idle_timeout = 5
#nfs_polling_interval = 6

O que é necessário para ter o FAM?

Primeiramente um sistema operacional baseado no Linux, UNIX, ou POSIX. Neste caso usarei um baseado em Linux.

Lembre-se, o FAM é apenas o início, ele atende requisições de um cliente, que vou demonstrar como exemplo, mas até você mesmo pode criar um cliente, com interface gráfica ou não.

Modo de instalar:

Ubuntu e Debian´s like:

sudo apt-get update (atualiza a lista de repositórios)

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

Para instalar usando os fontes, segue abaixo:
Comandos? Primeiramente vamos fazer o download do pacote:

# wget http://oss.sgi.com/projects/fam/download/fam-latest.tar.gz

Após baixar, vamos descompactar, compilar e instalar.

# tar xvfz fam-latest.tar.gz
# cd ./fam-latest
# ./configure
# ./make all && make install


Agora vamos ao cliente. Um cliente de fácil uso e interessante é o "FILESCHANGED", que com pouco tempo e comandos, você faz o básico.

Não vou demonstrar exemplos em C, C++, deixarei isso para frente ou se alguém mais se interessar, por email.

    Próxima página

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

Scanner de segurança SKIPFISH do Google para sites

Twitter Clone - Floopo - Mais um Micro blogging open source

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

Stoq - Gestão comercial open source

OpenGoo - Seu escritório nas nuvens Online-Ontime-Fulltime

Leitura recomendada

Montando partições NTFS no Fedora 3 através do Captive

Ativando suporte ao NTFS no RedHat9 sem recompilar o kernel

Recuperando dados do Windows usando um live-CD

Raid 1 com mdadm

Inserindo o recurso de lixeira no Samba

  
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