【Linux】日志文件实现定时分割、删除

6 篇文章 0 订阅
3 篇文章 0 订阅

日志文件实现定时分割、删除

前言: 日志对于服务或者项目的维护来说,是一个极其重要的部分。服务的日志如果都写入到同一个日志文件中,会导致日志无限制的不断膨胀,对于日志内容的查找、问题定位也十分不友好,通常都会想到将日志文件进行切割输出,例如按照时间每天一个日志文件、或者按照上限大小切分日志,也便于项目维护时定位问题,删除长期不必要的冗余日志。
如果是基于一些中间件的服务,通常可以借用其中的日志文件配置来分割日志;又比如像Spring、SpringBoot项目,可以通过集成日志框架来实现;也有一些服务是单独的,例如minio等,对于这类服务想要实现日志分割输出,可以利用服务器的 脚本 +定时任务来实现。

扩展:【SpringBoot】【log】 自定义logback日志配置


下面就如何使用 服务器的 脚本 +定时任务,来实现日志文件的定时分割、删除冗余日志:

日志分割命令脚本

* 按照时间
* 按照大小

1、新建日志分割命令脚本

vim log.sh

日志按照日期分割输出

# !/bin/sh
# 拷贝日志文件到 昨天的log中
cp /opt/minio/nohup.out /opt/minio/logs/minio_`date -d yesterday +%Y%m%d`.log

# 清空nohup.out 日志
cat /dev/null > /opt/minio/nohup.out

日志按照大小分割输出

# !/bin/sh
# 拷贝日志文件到 昨天的log中
split -b 100m -d -a 4 /opt/minio/nohup.out /opt/minio/logs/minio_`date -d yesterday +%Y%m%d`.log
# 清空nohup.out 日志
cat /dev/null > /opt/minio/nohup.out

日志删除命令脚本

删除一定时间的旧日志文件

vim log-delate.sh
# !/bin/sh
# 删除 Linux 系统 /root/logs/ 目录下且是 30 天前的.log 日志文件。
find /opt/minio/logs -mtime +30 -name '*.log' -exec rm -rf {} \;

2、执行 shell 脚本

./log.sh
# 或者
sh log.sh

可能遇到的问题:

1)提示权限不够

  • 问题原因:没有对文件赋予可执行权限

  • 解决办法:chmod +755 log.sh

2)提示 “目标‘\r’不是目录”

  • 原因分析: 在 linux 终端下,输出\r会什么都不显示,只是把光标移到行首

  • 解决办法: 用 vim 打开 sh 脚本文件, 重新设置文件的格式

vim log.sh

# 使用 set 命令修改文件格式
:set ff 
# 设置文件格式为 unix
:set ff=unix
# 保存退出
:wq!

3、查看日志文件目录,是否正确分割

定时任务实现日志分割命令

1、添加定时任务

crontab -e

根据自己需要设置,定时执行的时间,保存并退出

# cron表达式后面是脚本位置
# 每5分钟执行一次
*/5 * * * *  /opt/log/log.sh
# 每天
0 0 * * * /opt/log/log.sh

2、使定时任务生效

service crond restart
# 
systemctl restart crond

3、查看是否生效

定时任务执行

定时任务实现日志删除,释放日志空间

1、添加定时任务

crontab -e

例如 每天凌晨 1 点整执行一次脚本

# cron表达式后面是脚本位置
# 每天凌晨 1 点整执行一次
0 1 * * * /opt/log/log-delate.sh

2、使定时任务生效

service crond restart
# 
systemctl restart crond
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值