my sample:
# crontab -e
0 0 1 * * /root/CI_SCRIPT/clean_CI_logs.sh > /dev/null 2>&1
# cat /root/CI_SCRIPT/clean_CI_logs.sh
find /home/OSWP_UPDATE -mtime +60 -name "*.*" -exec rm -Rf {} \;
find /home/DPU_CI_LOG -mtime +60 -name "*.*" -exec rm -Rf {} \;
2)Cron表达式范例:
每隔5秒执行一次:*/5 * * * *
每隔1分钟执行一次:0 */1 * * *
每天23点执行一次:0 0 23 * *
每天凌晨1点执行一次:0 0 1 * *
每月1号凌晨1点执行一次:0 0 1 1 *
每月最后一天23点执行一次:0 0 23 L *
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * *
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * *
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
下面简要解释一下,这句shell命令:
find /home/logs -mtime +60 -name "*.*" -exec rm -Rf {} \;
- /home/log :准备要进行清理的任意目录
- -mtime:标准语句写法
- +60:查找60天前的文件,这里用数字代表天数,+30表示查找30天前的文件
- "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
- -exec:固定写法
- rm -rf:强制删除文件,包括目录
- {} \; :固定写法,一对大括号+空格+/+;
可以使用find命令
find 路径 -mtime +天数 -type f -name "文件名" -exec rm -rf {} \;
find /tmp -mtime +30 -type f -name "*" -exec rm -rf {} \;
/tmp --设置查找的目录;
-mtime +30 --设置修改时间为30天前;
-type f --设置查找的类型为文件;
-name "*" --设置文件名称,可以使用通配符;
-exec rm -rf --查找完毕后执行删除操作;
{} \; --固定写法
另外的方法大同小异:
#find /tmp -mtime +30 -type f | xargs rm -rf
可以吧这个命令写到脚本里,
cleandata.sh
find /tmp -mtime +30 -type f -name "*" -exec rm -rf {} \;
配置可执行
chmod u+x ./cleandata.sh
配置到crontab
crontab -e
0 0 * * * /home/username/cleandata.sh > /dev/null 2>&1
每天零点自动执行
第一个*号表示时间中的 分钟 取值范围:0-59
第二个*号表示时间中的 小时 取值范围:0-23
第三个*号表示一个月中的第几天,取值范围:1-31
第四个*号表示一年中的第几个月,取值范围:1-12
第五个*号表示一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天