在设定的时间段后自动移动新文件

在设定的时间段后自动移动新文件

我通过某项服务以不规则的时间间隔接收文件,需要将它们放在一个文件夹中 72 小时,然后再归档到另一个文件夹中。我想自动完成这个过程。理想情况下,这项服务会监视“正在使用”文件夹中是否有新文件,记录它们到达的时间,然后在 3 天后将它们移动到存档中。

我目前正在运行一个每 72 小时运行一次的 crontab 条目,以将正在使用的文件夹的所有内容移动到存档文件夹。这会导致给定文件的可用性窗口与不再需要时移动之间的同步问题。

答案1

类似这样的事情会起作用:

find /source/location -maxdepth 1 -mtime +3 -type f -exec mv "{}" /destination/location/ \;

工作原理:

  • find会寻找物品/source/location
  • -maxdepth 1将搜索限制在指定的目录中,忽略子目录
  • -mtime +3将结果限制在 3 天内或以上
  • -type f将结果限制为仅限文件
  • -exec将对这些结果运行命令,在本例中是mv
  • "{}"是结果find将去往的地方
  • \;告知find传递的命令exec已完成

将其放入你的 cron 作业中,并根据需要每小时运行一次。只有 72 小时或更早的文件才会被移动

相关内容