Linux 自动删除 10 天前文件(定时清理方案)

发布于 2025年11月13日

Linux-VPS-server-cPanel-Plesk-or-DirectAdmin (1).jpg

核心结论:通过 find 命令结合 crontab 定时任务,可实现自动删除 Linux 硬盘上 10 天前的文件。

一、核心命令(手动执行验证)

bash

# 替换 /目标目录 为实际要清理的路径(如 /data/logs)
find /目标目录 -type f -mtime +10 -delete

二、命令参数说明

  • -type f:仅匹配文件(排除目录,避免误删文件夹)。

  • -mtime +10:筛选 “最后修改时间超过 10 天” 的文件(+10 表示 10 天前及更早)。

  • -delete:直接删除匹配文件(执行前建议去掉此参数,用 ls 预览:find /目标目录 -type f -mtime +10 -ls)。

三、设置定时任务(自动执行)

  1. 编辑 crontab 配置:

    bash

    crontab -e
    
  2. 添加定时任务(每天凌晨 2 点执行,资源占用低):

    bash

    # 每天2:00自动清理 /目标目录 下10天前的文件
    0 2 * * * find /目标目录 -type f -mtime +10 -delete
    
  3. 保存退出(按 Ctrl+O 保存,Ctrl+X 退出,适用于 vi 编辑器)。

四、注意事项

  • 路径务必准确,避免写 / 根目录,防止误删系统文件。

  • 首次使用建议先预览匹配文件,确认无误后再添加 -delete 参数。

  • 若需保留特定后缀文件(如 .txt),可加 -name "*.txt" 筛选(例:find /目录 -type f -name "*.log" -mtime +10 -delete)。



评论