![将[不存在]文件“绑定”到程序](https://linux22.com/image/43990/%E5%B0%86%5B%E4%B8%8D%E5%AD%98%E5%9C%A8%5D%E6%96%87%E4%BB%B6%E2%80%9C%E7%BB%91%E5%AE%9A%E2%80%9D%E5%88%B0%E7%A8%8B%E5%BA%8F.png)
最近,我有一个想法,事实证明在某些情况下非常有用。但首先一些简单的解释:
在 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 万次的副作用是日志过多、分区填满和内核崩溃?该功能容易被滥用;与编程一样,副作用网络可能过于复杂且复杂,无法准确预测一个小变化的所有后果。