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

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

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

Auditoria de computadores com OPEN-AUDIT

QRCODE - Código de barras bidimensional

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

Leitura recomendada

Osiris - Integridade do sistema de arquivos

Transferência de arquivos remota de forma segura de Windows para Linux

Negação de serviço: Implementação, defesas e repercussões

Reparticionando ReiserFS via linha de comando

Configuração do Samba no Debian Server

  
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