需求说明
每日凌晨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)
即modify time,指文件内容被修改的最后时间。
-atime
访问时间(access time)
是指access time,指文件中的数据最后被访问的时间
-ctime
状态变更时间(change time)
即change time文件状态改变时间,指文件的元数据发生变化的时间,比如权限、所有者等,通过chmod修改文件属性,ctime就会被修改。
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 {} \;