Monitorar o diretório e, se um arquivo for solicitado, rsync on demand

4

Existe uma ferramenta que monitora um determinado diretório e, se um programa tentar acessar um arquivo nesse diretório, o programa carrega esse arquivo de outro lugar de forma transparente para qualquer aplicativo que tente carregar esse arquivo?

O pano de fundo é que eu tenho um ambiente de desenvolvimento local para um aplicativo de servidor grande. No momento, eu sincronizo todos os arquivos criados pelos usuários no sistema de produção de tempos em tempos via rsync para minha máquina local. Mas a quantidade de dados se tornou muito grande. Eu não posso armazenar as centenas de gigabytes do ambiente de produção na minha máquina dev local. Existe uma maneira de imitar os arquivos do sistema externo e carregá-los / sincronizá-los somente a partir do sistema externo se eles forem realmente necessários?

No entanto, a escrita de alterações nesses diretórios "monitorados" só deve ocorrer localmente.

    
por marcusx 05.06.2012 / 18:02

3 respostas

2

Sua situação parece um uso natural para unionfs . Com o unionfs, você poderia montar os dados do sistema de produção como um sistema de arquivos somente para leitura e montar uma camada do sistema de arquivos gravável transparente sobre ela que aceitaria as alterações locais.

    
por 05.06.2012 / 18:58
2

Talvez seja uma boa solução montar o sistema de arquivos remoto pela rede. Existem muitas possibilidades para conseguir isso.

Você pode exportar alguns diretórios da máquina de produção via NFS, SMB ou SSHFS e montá-lo em sua máquina dev. Se você usar este método, os arquivos serão transferidos pela rede somente se você solicitar.

Não sei qual é o propósito de transferir arquivos de usuários do sistema de produção para o sistema de desenvolvimento, mas você deve se lembrar da segurança dessa solução se os arquivos contiverem alguns dados privados / confidenciais. Se você escolher a opção para montar o sistema de arquivos remoto, lembre-se de montá-lo no modo somente leitura para evitar a destruição acidental.

    
por 05.06.2012 / 18:16
2

Parece um trabalho para FS-Cache . Este é um sistema de arquivos Linux que interage entre os aplicativos e o sistema de arquivos real (que pode ser NFS ou SSHfs se você estiver armazenando arquivos remotos em cache).

O guia de início rápido (do Wiki do Gentoo ):

cachefilesd
mount -t nfs -o fsc remotehost:/somedir /mount/point
ls /var/cache/fscache

Para mais informações, consulte A documentação do Fedora e Blog do Bart .

    
por 06.06.2012 / 01:08