自学内容网 自学内容网

Linux CentsOS定时删除一个目录下(包含子目录)的改动时间大于12小时的文件

Shell脚本

文件目录如下图

** 查找/ai/img/目录下的所有文件**

find /ai/img/ -type f

查找/ai/img/目录下的所有上次改动时间大于720分钟(12小时)的文件

12 小时,也就是 720 分钟。所以,我们可以使用 -mmin +720 来查找修改时间超过 720 分钟(12 小时)前的文件。

find /ai/img/ -type f -mmin +720

删除/ai/img/目录下的所有上次改动时间大于720分钟(12小时)的文件

find /ai/img/ -type f -mmin +720 -exec rm -f {} \;

解释:

  • /ai/img/:要清理的目录及其子目录。
  • -type f:只查找文件(不包括目录)。
  • -mmin +720:查找修改时间超过 720 分钟(12 小时)前的文件。
    • 也可以切换参数 -mtime +1:查找修改时间在1天前的文件(“+1”表示超过1天前的文件)。
  • -exec rm -f {} \;:对于找到的文件,执行删除操作。

定时任务(cron)配置

要让系统每天凌晨自动执行该删除操作,你可以将其添加到 cron 定时任务中。

  • 使用 root 权限编辑 crontab 文件:
sudo crontab -e
  • 添加以下行到 crontab 文件中,让任务每天凌晨执行:
0 0 * * * find /ai/img/ -type f -mmin +720 -exec rm -f {} \;
  • 0 0 * * *:表示每天凌晨 00:00 运行任务。
  • find /ai/img/ -type f -mmin +720 -exec rm -f {} \;:命令会查找 /ai/img/ 目录及其所有子目录下修改时间超过 12 小时(720 分钟)前的文件并删除。

  • wq保存后

  • crontab -l 查看定时任务列表


原文地址:https://blog.csdn.net/qq_31745863/article/details/142517993

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!