我接管了一家小公司的技术业务。然而,之前的领导做出了存储 100 GB 图像的错误决定,尽管我们的网站只使用了大约 5GB 的图像。基本上,没有清理脚本。我现在的任务是优化这个烂摊子,但不太确定从哪里开始。有没有办法获取每个图像文件最后一次通过网络访问的列表,所以我可以执行类似“如果在过去 365 天内未打开,则移动到备份驱动器并从主服务器中删除”之类的操作?
我接管了一家小公司的技术业务。然而,之前的领导做出了存储 100 GB 图像的错误决定,尽管我们的网站只使用了大约 5GB 的图像。基本上,没有清理脚本。我现在的任务是优化这个烂摊子,但不太确定从哪里开始。有没有办法获取每个图像文件最后一次通过网络访问的列表,所以我可以执行类似“如果在过去 365 天内未打开,则移动到备份驱动器并从主服务器中删除”之类的操作?
您忽略了使用您所在的环境(操作系统、Web 服务器等),所以我假设是 Linux。
如果您没有使用 将数据目录安装在服务器上
noatime
,则可以使用find
搜索 365 天内未访问的文件:如果您使用
noatime
,这将是不可能的(如果您使用relatime
,则atime
可能是 24 小时关闭)。但是,这不是一个好方法,因为您的 HTML 文件中可能会出现死链接,并且有人会在 5 天后需要此资源...
更好的方法:解析您的网络树,列出其中引用的所有文件(确保关闭您的网络服务器自动索引...)并存档其他所有内容。这样,您可以确保 HTML 文件中列出的所有内容仍然可用。
请注意,您有可能在您的常规树中存在未链接到人们通过直接链接访问的孤立的 HMTL 文件孤岛 - 在构建您的列表时考虑这些文件。当然,图像文件可能也是如此,但您实际上只能通过日志文件解析或
find
方法捕获那些文件。根据您的网络日志回溯多远,您可以解析出相关目录中文件的所有条目,然后删除所有未找到的内容。