在Linux中,为什么配置文件的文件夹总是命名为* .d


Answers:


22

.d代表目录。习惯上将基于目录的配置与基于单个配置文件的配置区分开。通常,您会同时具有某些能力,例如/etc/logrotate.conf/etc/logrotate.d/

通常,这种目录中的所有(合理命名的)文件都会自动组合为一个配置。然后,程序包可以将文件安装到这样的目录中,它们将被自动使用。同样,这/etc/logrotate.d/是一个很好的例子。相比之下,未以结尾结尾的配置文件目录.d可能仅包含属于同一软件包的配置文件的随机整理,例如,您不能推断出有关其处理方式的任何信息/etc/zsh/


2

为了进一步说明Peter的答案,此.d模式可简化配置文件的添加和删除操作:对于给定的.d程序,管理员可以简单地将文件复制或删除到.d目录中,而无需进行编辑现有的配置文件。

例如,如果要向系统中添加cron作业,则可以使用自己喜欢的文本编辑器使用新的预定作业来编辑/ etc / crontab。对于单个服务器或少数服务器来说,这很好,但是如果您在数据中心/云环境中工作,请尝试在100台服务器上执行此操作。在后一种情况下,您可以使用诸如sed之类的临时文件或诸如ex之类的工具将文件原地写入,但是如果您未正确地编写命令,则存在一定的风险。确实,由于这些编辑命令中的错字,我已经看到配置文件完全被破坏了。

现在将其与将计划的作业放入文件/etc/cron.d进行比较。您只需将文件复制到其中,然后cron下次运行(通常每分钟运行一次),它将看到新文件并进行相应的源/处理。如Peter所言,如果您想滚动自己的软件包,那就太好了:/etc/cron.d文件只是软件包归档文件中已安装的另一个文件。删除软件包后,cron.d文件将被删除,您的cron不再运行。

最后,就文件的来源而言,每个具有.d目录的程序都可能具有其自己的实现,例如,覆盖顺序和配置覆盖。因此,每当您决定将文件放置在.d目录中时,请始终验证该文件是否符合您的要求,而不仅仅是假定它的工作方式与具有.d目录的另一个程序一样。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.