1、日志目录及格式
比如日志文件存放目录在/usr/app/log
日志文件格式 :
2020-03-01.log
2020-03-02.log
2020-03-03.log
2020-03-04.log
2020-03-05.log
2020-03-06.log
2、根据需求新建shell脚本
在该目录下新建autoCleanLog.sh
searchPath=/usr/app/log
cd ${searchPath}
declare -i total=`ls *.log | wc -l`
declare -i nums=$total-7
if [ "${nums}" -ge 1 ];then
rm -rf `ls -tr *.log | head -${nums}`
fi
如上。只保留最近7天的日志文件
或者 find /usr/log -mtime +15 -name "*2020*" -exec rm -rf {} \;
chmod +x autoCleanLog.sh 赋予脚本可执行权限
3、crontab 因为是Linux自带的。所以不需要按照
service crond status 查看当前状态
crond (pid 80728) is running...
此时说明cron 服务已经启动 占据pid为80728
--如果cron服务未启动
/sbin/service crond start //启动
/sbin/service crond stop // 停止
/sbin/service crond restart // 重启
4、新增或者编辑定时任务
crontab -e 进入编辑或者新增 。
前面的5项分别代表 分 时 天 月 星期 。下面的代表每天的14点23分执行一次
23 14 * * * /usr/log/log/autoCleanLog.sh
如果想追加日志 23 14 * * * /usr/log/log/autoCleanLog.sh >> /usr/log/reboot.log
保存文件退出。
--异常情况。提示权限不够/var/spool/cron/tmp.XXXXFSq8E3: 权限不够 crontab: edits left in /tmp/crontab.HaZsu1
那么可能目录有什么特殊的地方,root用户也被约束了查看是否有特殊的属性
lsattr /var/spool/cron/ 查看特殊的属性
chattr -ai /var/spool/cron 去掉特殊的属性
再次编辑定时任务保存即可
5、让改动的配置立即生效
sudo /etc/init.d/cron restart
6、查看当前运行的定时任务 crontab -l
23 14 * * * /usr/log/autoCleanLog.sh