我在部署过程中使用 tar 来提取文件。我注意到 systemctl 发出警告,如果 .service 文件的时间戳发生更改,即使文件内容保持不变,也必须运行 daemon-reload 。
如何配置 tar 在文件内容未更改的情况下不更改文件日期?
答案1
据我所知,任何 tar 的实现都没有这个功能(它们都是直接提取的;在任何时候都不考虑现有文件的内容)。关键是该文件实际上是被完全覆盖,即使只是与之前相同的内容。
因此,仅使用 tar 无法实现这一目标。
如果您可以先提取到临时目录,然后rsync
仅复制有更改的文件,那就会有所不同。但请注意,这需要额外的存储空间,并且夜间需要的时间明显更长,具体取决于临时存储空间。
发出警告
所以,警告就是警告,而不是问题。如果您知道没有任何变化,请忽略它。但如果没有任何变化,则重新加载守护进程也不会产生不利影响。