Conteúdo de arquivo dinâmico ou virtual, semelhante a / sys / *

0

Imagine que você queria um arquivo - por exemplo / etc / hosts - mas toda vez que o arquivo era lido, em vez de lê-lo no sistema de arquivos, seu conteúdo era a saída de um aplicativo - por exemplo, um script que envia a configuração os sites habilitados para o apache

Eu sinto que isso deve ser possível, por exemplo, o código do kernel gera praticamente tudo em /sys e /proc , o que eu acredito que seja montado como sistemas de arquivos virtuais. Existe algum tipo de sobreposição de sistema de arquivos virtual de espaço de usuário de finalidade geral que me permita delegar um script ou binário como a saída que deve ser mostrada sempre que um arquivo é lido, ou este caso de uso simplesmente não aparece com muita frequência? / p>

(Eu imagino que o uso indevido pode atrasar consideravelmente o sistema, e provavelmente existem maneiras melhores - no caso acima, uma tarefa Cron que execute a cada 10 minutos seria preferível - mas estou curioso para saber se é algo que foi encontrado antes e tentou)

    
por user208769 04.01.2018 / 02:02

1 resposta

0

Sim, é chamado de FUSE . O kernel permite que sistemas de arquivos com recursos completos sejam implementados no espaço do usuário e você pode ter usado alguns deles já: sshfs, curlftpfs, ntfs-3g, archivefs, wikipediafs ...

A interface FUSE é um pouco mais baixa do que você descreve (o sistema de arquivos ainda precisa manipular individualmente as aberturas, leituras, gravações ...), mas ela tem ligações para várias linguagens do Python para bash . A maioria deles tem um exemplo de "hello world" que pode ser adaptado para fornecer a saída de um programa externo como dados.

O FUSE funciona atualmente no Linux, vários BSDs, macOS, Solaris ...

    
por 04.01.2018 / 15:56