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

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

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

Stoq - Gestão comercial open source

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

Laconica - Twitter? Open source? Sim! Eis nosso microbloging de código aberto

Servidor Messenger Openfire passo-a-passo no Linux

Leitura recomendada

Entendendo e configurando o LVM manualmente

RAID, tudo que você precisa saber

Entendendo as permissões de arquivos (chmod)

Montando HD, Pendrive ou Pasta de Rede para Gravações de Ligações do Elastix e Módulo de Call Center

File Globbing ou Englobamento - Introdução

  
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