我通过某项服务以不规则的时间间隔接收文件,需要将它们放在一个文件夹中 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 小时或更早的文件才会被移动