Linux Crontab 定时清理日志
日志的管理有很多方式:
- java项目:在
logging-spring.xml
内可以配置,按大小存储,存储多长时间之类的,springboot
可以在application.yaml
或是bootstrap.yaml
内配置日志 - 使用
logrotate
管理项目日志 - 脚本,直接删掉某天或某段时间的日志
以下是使用通过脚本,定时执行的方式来对日志进行管理的
提前准备
- 系统:
- ubuntu 20.04
- 工具:
- 文本编辑器
- crontab(定时调度工具)
编写脚本
只保留三天的日志
#!/bin/sh
# 定义今天的日期
date=$(date +%Y%m%d)
# 定义要删除的日期
rmdate=$(date -d "3 days ago" +%Y-%m-%d)
# 寻找复合条件的日志,并删除
find /home/ubuntu -name "*$rmdate.log*" -exec rm -rfv {} \;
find /home/ubuntu/app-auth/logs -name "*$rmdate.txt" -exec rm -rfv {} \;
find /home/ubuntu/nacos/logs -name "*.log.$rmdate.*" -exec rm -rfv {} \;
# 将/your path 替换成你需要的目录
find /yourPath -name "*.log.$rmdate.*" -exec rm -rfv {} \;
# 将执行日期打印在 /root/log-clear.log 目录里,下面这行可要,可不要
echo `date` >> /root/log-clear.log
crontab
# 安装cron
apt-get install cron
# 开始|停止|状态|重启|设置为开机自启
systemctl [option](start|stop|status|restart|enable) cron
# 检查当前用户是否有定时任务
crontab -l
使用
# 查看帮助手册
man crontab
# 检查当前用户是否有定时任务
crontab -l
# 指定用户检查定时任务
crontab -l -u [username]
编辑cron定时任务
crontab -e
# 看个人情况,选择编辑器,我选择的是 第二个 vim编辑
将脚本加入定时任务中
# 参数解释
25 7 * * * (每天7点25分执行脚本一次)
保存后退出
# 查看定时任务
crontab -l