sistema de arquivos dinâmico com ganchos

2

Existe alguma maneira no Linux (não importa qual distribuição ou sabor) ter um sistema de arquivos dinâmico com ganchos de leitura / gravação? Por exemplo, eu gostaria de montar um sistema de arquivos dinâmicos em / dynamic e sempre que eu tento ler / gravar em um local não existente um script ou programa bash é executado. como se eu fizesse tail /dynamic/folder1/file1.log um script bash fosse executado antes da operação de leitura e o caminho estaria disponível como um argumento. Existe algum projeto lá fora que faça algo assim?

    
por DiverseAndRemote.com 12.02.2013 / 06:10

2 respostas

5

Você está procurando pelo FUSE .

With FUSE it is possible to implement a fully functional filesystem in a userspace program. Features include:

  • Simple library API
  • Simple installation (no need to patch or recompile the kernel)
  • Secure implementation
  • Userspace - kernel interface is very efficient
  • Usable by non privileged users
  • Runs on Linux kernels 2.4.X, 2.6.X and 3.X
  • Has proven very stable over time

Embora, para ser justo, eu não tenha visto um módulo FUSE para programas / scripts raw , você ainda precisará fazer alguma alguma codificação.

    
por 12.02.2013 / 06:15
0

Você também pode querer dar uma olhada em inotify . Ele fornece uma API que ouve as alterações do sistema de arquivos. Você poderia, por exemplo, usar IN_CREATE para ser notificado toda vez que um novo arquivo for criado em um diretório específico (há APIs inotify para praticamente qualquer linguagem de programação ou script, então sinta-se à vontade para escolher o que mais lhe convier).

No entanto, acho que não é possível se informar sobre tentativas de leitura de arquivos inexistentes (com uma opção para criá-lo antes que o outro programa possa lê-lo), mas dependendo do caso de uso, você pode contornar esse problema. Se inotify não é a escolha certa para você, eu usaria FUSE como Ignacio sugeriu. Mas isso pode adicionar muito trabalho adicional para implementar o que você deseja.

    
por 12.02.2013 / 07:18