所以我有一个庞大的遗留应用程序,其中包含五十万个 php 文件。对于单个请求,我想知道 apache 使用哪些 php 文件来响应。我可以查看 apache 日志,它们告诉我使用了哪个主要文件,但没有告诉我稍后需要的文件。
find /path/to/app -amin +1
我在请求后不久尝试。这没有产生任何结果。我cat /path/to/app/file.php
确实的文件显示在上面的 find 输出中(因此文件系统实际上是使用 atime 标志挂载的)。另外,我假设 apache 以某种方式缓存了文件内容,所以我重新启动了它并请求了一个页面。这也没有产生任何结果。
这是怎么回事?或者是否有其他方法可以用来查找访问的文件?
答案1
按 atime 排序很可能不会得到预期的输出。如果您的文件系统使用 挂载relatime
,则访问时间不会始终更新。
从手册页中:
更新相对于修改或更改时间的 inode 访问时间。仅当上次访问时间早于当前修改或更改时间时,才会更新访问时间。(类似于 noatime,但不会影响 mutt 或其他需要知道文件自上次修改后是否已被读取的应用程序。)
相反,使用strictatime
将会每次更新atime。