linux 定时删除指定时间文件及目录

  • 2020-11-05
  • 浏览 (69)

需求说明

每日凌晨0点定时删除/temp目录下的所有一个月未被访问的文件。

脚本实现

linux 终端输入crontab -e,添加定时任务脚本命令

在文件末尾追加

0 0 * * * find /temp -atime +30 -exec rm -rf {} \;

参数说明

  • find /temp:查找temp目录
  • -atime:访问时间
  • +30 :30天以前
  • -exec :执行其后面的命令
  • rm -rf {} :删除查找到的内容,{} 代表find查找到的内容
  • \; :结束符号,\用来转义

命令格式

find 对应目录 -name "文件名" -type f -mtime +n -exec rm -rf {} \;
  • -type

    f:普通文件

    d:目录

  • -mtime

    修改时间(modify time)

  • -atime

    访问时间(access time)

  • -ctime

    状态变更时间(change time)

  • n

    +n 第n天之前的,不包括第n天当天

    -n 第n天到今天的,不包括第n天当天

    备注: n为整数,以天为单位,0x24表示今天,1x24表示昨天;n有一位小数,以小时为单位,如0.5x24;n有两位小数,以分钟为单位,如0.55x24;

脚本验证

查看定时任务是否被加入定时任务列表

[root@localhost ~]#  crontab -l

查看文件是否被删除,删除在/temp目录下1天内创建的后缀为.log的文件

0 0 * * * find /temp -name "*.log" -mtime -1 -exec rm -rf {} \;
正文到此结束