我从一家离岸公司继承了一个 php 项目,我确信其中约 50% 的文件不再使用。我想清除未使用的文件,所以我想在进行下一轮开发工作时跟踪每个文件被请求或包含的次数,然后精简冗余。有没有简单的方法来跟踪这个?它运行在一个非常普通的 LAMP 堆栈上。
答案1
你可以使用网络统计解决方案跟踪整个网站的点击量。但是,这对包含的 PHP 文件没有帮助
另一个选择是创建一个小脚本,包含在每个文件中,每次解析时将文件名写入日志。
答案2
嗯……如果您的备份解决方案保留了文件的最后访问时间,那么解决方案很简单……只需在目录结构的顶部查找并检查未访问的文件即可。例如:
find [dir1][dir2]...[dirn] -type f -atime +180 -print
将会在指定目录中查找 180 天内未访问过的文件。
答案3
我认为通知是最好的解决方案,尝试使用inotifywatch监视指定目录中的 ACCESS/OPEN 操作:
#通知等待-e 访问-e 打开-m -r /home/jamzed/
现在 /home/jamzed/* 中的所有“访问”和“打开”操作都将受到监控。
例如:如果我执行'$ cat examples.desktop',那么 inotifywatch 会在 STDOUT 上写入:
/home/jamzed/ 打开 examples.desktop /home/jamzed/ 访问 examples.desktop
您可以将 STDOUT 重定向到文件(>> file_to_analyze),以便更好地分析哪些文件未被使用。
答案4
您可以使用审计在内核级别监控文件访问,然后使用 ausearch 搜索/grep 审计日志。无论哪个进程/用户/子 shell 正在接触文件,这都应该能捕获所有内容。如果这是一台繁忙的服务器,显然在设置大量监视之前要进行一些健全性检查。