将[不存在]文件“绑定”到程序

将[不存在]文件“绑定”到程序

最近,我有一个想法,事实证明在某些情况下非常有用。但首先一些简单的解释:

在 Perl 中,您可以选择将变量绑定到使用该变量时调用的某些函数。例如:“每次更改时将该变量的更改写入 HD”。这在很多情况下都非常有用。请参阅 perldoc 了解更详细的解释:http://perldoc.perl.org/functions/tie.html

所以我有一个想法:是否可以将一般 Unix/Linux 中的文件(或任何特定文件系统上的文件,只是出于好奇,尽管我主要使用 ext4)绑定到脚本?

crontab 是一个非常有用的例子。如果您有很多 cronjobs 和很多不同的人在处理它,那么这个文件就不太容易自动维护。每次都需要改变等等。在这里,数据库会派上用场,其中存储了所需的所有信息+一个脚本,该脚本将数据库中的信息转换为 cron 可以理解的内容。

所以,我的想法基本上是,在这个例子中,不要有 crontab 文件,而是将其链接到脚本,比如说/root/crontab.pl.在我看来,每次操作系统尝试找到 crontab 本身时,它都会看到:“哦,不过文件不存在。它与这个和那个相关。我应该执行该脚本,它的输出将是就像文件一样使用”,因此对程序本身完全透明。

当然,还有其他方法可以实现这一点:替换文件,这个那个等等,但基本思想应该是清晰的。

不过,我实际上在我的研究中还没有发现类似的东西,因为我主要用 Perl 编程,而且我习惯称那个东西为“tie”,并且不知道任何其他词来形容它,这可能是我的错。

那么:有什么吗?如果不是的话:有什么反对这样的功能的吗?我真的认为在很多情况下这会很棒。

答案1

你可以使用保险丝提供到文件系统特定部分的用户态挂钩,使脚本在适当的文件被读取时运行。

答案2

你如何记录它?下一个系统管理员将如何发现运行命令 700 万次的副作用是日志过多、分区填满和内核崩溃?该功能容易被滥用;与编程一样,副作用网络可能过于复杂且复杂,无法准确预测一个小变化的所有后果。

相关内容