当前位置: 首页 > 知识库问答 >
问题:

每天从目录(cron)中删除X个最旧的缓存文件(不管有多少天)

宋岳
2023-03-14

对于我的个人网站(基于文件的cms、php、共享主机、ssh访问ok),我使用的是一个缓存系统,它基本上保存了每个服务页面。为此,我使用一个专用目录/htmlcache,现在存储了大约60k个小文件。很好用。

现在我需要的是一个简单的解决方案来删除X最老的文件(自创建时间)每天或每周的基础上(说:100最老的文件每天或700每周,以适应我喜欢的节奏)。

关于如何删除X天以前的文件,有很多信息可以找到,但关于如何删除X天以前的文件,信息就不多了。

为什么我非常强烈地倾向于每天自动删除X个最老的文件,而不是每天删除X天的文件,因为很多缓存文件已经在几天内创建,我想要一些平滑和线性的东西。

我想你必须进入缓存目录,按日期对文件排序,选择X文件并删除它们。好我对cron一无所知,对unix命令也几乎一无所知,我希望有一本指南可以帮助我了解命令和如何使用它。

因为目录相当大(60k个文件,我想最多会增长到100k),我希望解决方案能够照顾好服务器(用于列表和排序过程)(我不介意每天删除最旧的文件:每周也可以)。

我的缓存目录中没有子目录,缓存文件的命名方式如下:

Foo.Bar.htlm
MyGroup.MyOtherWords.html

共有1个答案

秦涵映
2023-03-14

最后,如果我没有弄错的话,它对我的工作方式(应该与一些自动化工具一起使用)是:连接ssh,并运行以下命令删除当前目录中1000个最旧的文件:

ls-1tr | head-1000 | xargs-d'\n'rm-f

对pmcjury的信贷

 类似资料:
  • 我用的是log4j2.14。1. 我想做的是有一个appender,它允许我每天有一个日志文件,但在N天后删除旧的日志(例如,我希望最多有10天的日志)。 我尝试过使用DirectWriteRolloverStrategy,它看起来不错,每天创建一个日志文件,但显然无法删除旧文件,因此我的日志目录中充满了日志;maxFiles属性似乎只设置了与文件模式匹配的时间段内允许的最大文件数(请参见http

  • 所以我重新下载了我的google drive备份,我注意到在每个文件中,不管在我的目录和或子目录中有多深,它的名称中都有一个“(1)”,我想要删除这个。Iv获得但这只适用于这个目录,我需要深入得多。提前道谢。 更新:get到“get-childitem-recurse rename-item-newname{$_.name-replace”(1)“,”“}”但它引发错误:rename-item:源

  • 问题内容: 我正在尝试编写python脚本来删除X天之前的文件夹中的所有文件。这是我到目前为止所拥有的: 运行脚本时,我得到: , 并给出文件名。我究竟做错了什么? 问题答案: 返回裸文件名列表。它们没有完整的路径,因此您需要将其与包含目录的路径合并。您在删除文件时执行此操作,但在文件删除时(或在执行任一操作时)则不执行此操作。 最简单的解决方案是在循环的顶部执行一次: 现在是文件的完整路径,您可

  • 问题内容: 我正在做一个新项目。我想知道某个目录中有多少个文件。 这是我到目前为止(从搜索中获得的)。但是,它显示不正确吗?我添加了一些注释,以便随时删除它们,它们是为了使我能尽我所能。 如果您需要更多信息,或者觉得我还没有足够描述,请随时声明。 问题答案: 您可以简单地执行以下操作:

  • 问题内容: 我在目录()中有文件名列表。我想从所有这些文件名中删除一定数量的字符。 文件名示例: 我希望在每个文件名中删除文件扩展名前的最后5个字符。 例如: 我相信可以使用完成此操作,但是我无法确定确切的编码。就像是… …但是那行不通。抱歉,如果我选择了这些选项,则我对此没有太多经验。 问题答案: 要么 %%是bash内部操作员…

  • 我有一个目录,它是在执行应用程序后创建的。在使用应用程序的过程中,它充满了一些图片,这些图片是ComboBox的ItemsSource。在关闭应用程序之前,我试图通过设置new()或NULL来清除ItemsSource并删除该目录。如果目录为空,则会正常删除。但除此之外——什么都没有发生,也没有例外。我做错了什么? 创建目录并将路径值分配给“FeedBackScreenshotsPath” 删除