'tie' [não existente] arquivos para programas

2

Recentemente, acabei de ter uma ideia que acabou por ser bastante útil em determinadas circunstâncias. Mas primeiro alguma explicação simples:

No Perl, você tem a opção de vincular variáveis a algumas funções que são chamadas quando a variável é usada. Por exemplo. for: "Escreva as alterações dessa variável em HD toda vez que for alterado". Isso é muito útil em muitas situações. Veja o perldoc para explicações mais detalhadas: link

Então eu tive uma ideia: É possível ligar arquivos no Unix / Linux em geral (ou em qualquer sistema de arquivos específico, apenas por curiosidade, embora eu use principalmente o ext4) para scripts?

Um exemplo em que isso seria realmente útil seria crontab. Este arquivo não é muito simples de manter automaticamente se você tiver muitos cronjobs e muitas pessoas diferentes trabalhando nele. Toda vez que precisa ser mudado e assim por diante. Aqui, um banco de dados seria útil, onde todas as informações necessárias são armazenadas + um script que transforma as informações no banco de dados em algo que o cron possa entender.

Então, a minha ideia basicamente é, neste exemplo, não ter o arquivo crontab, mas em vez de tê-lo vinculado a um script, digamos /root/crontab.pl . Em minha mente, toda vez que o sistema operacional tenta encontrar o crontab em si, ele visualiza: "Oh, o arquivo não existe, no entanto. Ele está ligado a isso e a isso. Eu deveria executar esse script e a saída dele será usado como se fosse o arquivo ", sendo totalmente transparente para os próprios programas.

Naturalmente, existem outras maneiras de conseguir isso: substituir o arquivo, isso e aquilo e assim por diante, mas a ideia básica deve ser clara.

Na verdade, eu não encontrei nada parecido em minha pesquisa, porque eu principalmente programo Perl e estou acostumado a chamar aquilo de "empate" e não sei nenhuma outra palavra para isso, que pode ser minha falha.

Então: Existe alguma coisa? E, se não: alguma coisa fala contra tal recurso? Eu realmente acho que há muitas situações em que isso seria incrível.

    
por Norman 16.12.2012 / 02:07

2 respostas

2

Você pode usar o FUSE para fornecer um hook de userland em partes específicas do sistema de arquivos, fazendo com que os scripts sejam executados quando os arquivos apropriados são frobbed .

    
por 16.12.2012 / 04:10
2

Como você documenta isso? Como o próximo administrador do sistema descobrirá que o efeito colateral de executar um comando 7 milhões de vezes seria um excesso de logs, uma partição preenchida e um kernel panic? Esse recurso é propenso a abuso; da mesma forma que na programação, a teia de efeitos colaterais pode ser muito complicada e complicada para prever com precisão todas as conseqüências de uma pequena alteração.

    
por 16.12.2012 / 07:07