对于我的个人网站(基于文件的cms,php,共享主机,ssh访问正常),我使用的是缓存系统,该系统基本上保存了每个服务的页面。为此,我使用一个专用目录/htmlcache,现在存放大约 60k 个小文件。它工作正常。
现在我需要的是一个简单的解决方案,每天或每周删除 X 个最旧的文件(自创建以来)(比如:每天 100 个最旧的文件或每周 700 个,以适应我喜欢的节奏)。
有关如何删除早于 X 天的文件可以找到很多信息,但对于如何删除 X 最旧的文件的信息却不多。
为什么我非常喜欢每天自动删除 X 个最旧的文件而不是每天 X 天老化的文件,这是因为几天内就创建了大量缓存文件,我想要一些平滑和线性的文件。
我想必须进入缓存目录,按日期对文件进行排序,选择 X 个文件并删除它们。井。我对 cron 一无所知,对 unix 命令几乎一无所知,我希望指南可以帮助我了解命令以及如何使用它。
因为目录非常大(60k 文件,我猜最大增长到 100k),我希望解决方案照顾服务器(用于列表和排序过程)(我不介意每天删除最旧的文件:每周的基础也很好)。
我的缓存目录中没有子目录,缓存的文件是这样命名的:
Foo.Bar.htlm
MyGroup.MyOtherWords.html
最后,如果我没记错的话,它对我来说的工作方式(应该与一些自动化工具一起使用)是:连接 ssh,然后运行以下命令以删除当前目录中的 1000 个最旧的文件:
ls -1tr | head -1000 | xargs -d 'n' rm -f
致谢 pmc陪审团