You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在TrueNAS Scale中通过Cron任务查找并删除15天前的监控录像文件夹

如何在TrueNAS Scale中通过Cron任务查找并删除15天前的监控录像文件夹

我明白你的需求——监控摄像头每小时往TrueNAS Scale的NAS上传一个文件夹,每天24个,现在要自动清理15天前的旧录像,而且你不太熟悉Cron的用法。别担心,我一步步带你搞定这件事。

第一步:确认监控录像的存储路径

首先你得明确监控文件存在NAS的哪个位置,比如你分配的500G备份数据集路径可能是/mnt/tank/surveillance(记得把这个路径替换成你实际的存储路径,比如在TrueNAS里创建的数据集挂载地址)。

第二步:编写精准的删除命令

我们用find命令定位旧文件夹,再配合rm完成删除。这个命令可以准确找到15天前的文件夹并清理:

find /mnt/tank/surveillance -type d -mtime +14 -exec rm -rf {} \;

我给你拆解下每个参数的作用:

  • /mnt/tank/surveillance:替换成你的监控录像实际存储路径
  • -type d:只查找文件夹(因为你的录像按小时存在独立文件夹里,不用删单个视频文件)
  • -mtime +14:匹配修改时间超过14天的文件夹——这里要注意,+14代表距离当前时间已超过14×24小时,刚好覆盖15天及更早的内容(比如今天是5月20日,这个命令会删除5月5日及之前的所有小时文件夹)
  • -exec rm -rf {} \;:对找到的每个文件夹执行强制删除操作,{}会自动替换为找到的文件夹路径

⚠️ 关键:先测试再执行删除!
先把命令里的rm -rf换成ls -l,这样只会列出找到的文件夹,不会真的删除,确认是你要清理的内容后,再改回删除命令:

find /mnt/tank/surveillance -type d -mtime +14 -exec ls -l {} \;

第三步:在TrueNAS Scale中配置Cron定时任务

现在把这个命令设置成定时任务,让它自动运行:

  1. 登录TrueNAS Scale的Web管理界面
  2. 左侧菜单栏找到「任务」→「Cron任务」
  3. 点击右上角的「添加」按钮
  4. 在弹出的表单中填写以下内容:
    • 描述:写个好记的名称,比如「自动清理15天前的监控录像」
    • 命令:把刚才测试无误的find删除命令填进去
    • 用户:选择root——删除文件夹需要足够权限,用root最稳妥
    • 调度:设置执行时间,推荐选每天凌晨2点(NAS负载最低的时段),对应的Cron表达式是0 2 * * *(你也可以用界面的可视化选择器,选「每天」→「小时」设为2,「分钟」设为0)
    • 启用:勾选这个选项,确保任务生效
  5. 点击「保存」就完成配置了!

额外注意事项

  • 务必确认存储路径正确,避免误删其他重要数据
  • 如果你的文件夹是按日期命名(比如2024-05-01-08这种格式),也可以用-name参数匹配日期,但用-mtime按文件修改时间判断更可靠,不受命名规则变化影响
  • 可以定期查看「Cron任务」页面的执行状态,或者系统日志,确认任务是否正常运行

备注:内容来源于stack exchange,提问作者H.Mohamed Ismail

火山引擎 最新活动