服务器配置定时任务删除log日志等
最近有个需求是定时删除项目产生的log日志 和 下载或传输的文件等,入门使用cron定时任务可参考:
整体步骤:创建shell脚本并编辑内容 --> 添加可执行权限 --> 加入到定时任务执行
1、删除文件的命令
语法:find 对应目录 -mtime +天数 -name “文件名" -exec rm -rf {} \;
作用:查找命令 log存在的路径 按天数时间 +天数 -按文件名 ”*.log“ -exec 删除 r递归删除,f是确认删除 注意空格
例:
find /home/mydemo/log/ -mtime +7 -name "*.log" -exec rm -rf {} \;
删除/home/mydemo/log/下7天前的所有.log文件,rm -rf递归的删除,将子文件夹下也删除
find /home/mydemo/log/ -mtime +7 -name "*.log" -exec rm -f {} \;
删除/home/mydemo/log/下7天前的所有.log文件,rm -f只删除/home/mydemo/log/下的log
2、创建定时执行的shell脚本文件
(1)创建一个.sh后缀文件,编辑内容(也可以在自己电脑上创建并写好内容,传到服务器)
vim auto-del-7-days-ago-log.sh
(2)编辑文件内容
编辑内容:
#!bin/sh
find /home/mydemo/log/ -mtime +7 -name "*.log" -exec rm -f {} \;
(3)保存退出:wq
(4)设置shell文件可执行权限:
chmod +x auto-del-7-days-ago-log.sh
3、加入定时任务
(1)编辑定时任务表
执行:crontab -e
(2)i编辑,添加定时任务进去:每天凌晨2点执行清理的脚本
0 2 * * * /home/mydemo/auto-del-7-days-ago-log.sh
(3)保存退出:wq
(4)查看定时任务列表:
执行:crontab -l
4、定时任务时间配置表达式
可参考spring中配置定时任务语法:
crontab表达式: * * * * *
*(分0-59) *(时0-23) *(天1-31) *(月1-12) *(周几0-6)
如每天凌晨2点执行:0 2 * * *
(还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次)。