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

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

Aluguel de certificações e formações. Ilegal?

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

Servidor de monitoramento Nagios

Stoq - Gestão comercial open source

Leitura recomendada

Solucionando problemas no sistema de arquivos

Lendo partições Linux no Windows

Criando dispositivos RAID via software no Linux

Utilizando quota em XFS

NFS rápido e direto usando Slackware 12

  
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