随着我们继续使用基于内容的网站,大量的图像被转储到我们的图像文件夹中,但我们很少遇到有人在不需要文件时删除它们,这意味着我们最终在一个文件夹中得到了一个巨大的图像列表,这很难清理。
是否有一个工具可以让我查明在过去 (n) 个月内是否有人从网络上请求过某个图像?
更一般地讲,您如何控制图像文件夹?您强制开发人员进行什么清理政策?如果最终出现失控的情况,您会采取什么措施来决定哪些要处理,哪些要保留?
答案1
您的 Web 内容管理工具是否允许您报告或查询网站内容中链接了哪些图像?或者,您是否可以在内容页面中运行字符串搜索以查找图像文件扩展名?如果是这样,该报告结合过去 12 个月(或更长时间,取决于您的站点)中来自 Web 服务器日志的图像列表应该足以识别所需的图像。这假设图像文件请求出现在您的服务器日志中。如果您在服务器上有可用的脚本环境,那么您可以编写脚本来删除未包含在这些列表中的图像。您还可以创建第二个文件夹并将所有需要的图像移动到那里,然后执行您概述的重命名。
当然,请先备份一两个,然后测试其是否有效!
根据网站的大小,您还可以采用另一种方法,即增加存储空间。这可能比花时间整理一堆图片文件更便宜、更快捷。这还可以防止以后出现图片直接链接到其他网站或与重要但不常用的内容相关的问题。
答案2
为什么不以固定间隔运行脚本来检查文件最后访问的状态并根据老化参数删除它们?
您可以使用以下方法评估类 Unix 系统中的访问时间,find -atime <arg>
其中 arg 是天数,+/- 分别表示多或少
因此,您可以将例如搜索上次访问超过 90 天的 jpg 图像的输出find -atime +90 "*.jpg"
输入到 for 循环中,例如,将其输入到 $f 变量中,然后使用rm
命令对其进行循环
答案3
两种简单的方法来实现您想要的效果。
- 解析 Web 服务器日志(例如使用 Perl)并创建已访问的文件列表,然后删除所有其他文件。这不是我喜欢的做事方式。
- 解析您网站上的链接(如果网站以可行的方式构建)并删除任何未链接的文件。如果可行,则更可取,因为它考虑到很少访问的内容。
答案4
在查看日志文件后,发现主服务器 IIS 由于性能问题和一些“政治”原因没有记录任何数据!最后我创建了自己的“监视”日志,在其中读取所有传入请求,检查它是否在图像文件夹中,然后打开一个文本文件,添加图像 URL 和 urlReferrer,一个月后,我能够对应该放入哪些文件夹做出有根据的猜测
感谢大家对此的意见