linux中通过logrotate进行日志切割

🍁博主简介

🏅云计算领域优质创作者

🏅2022年CSDN新星计划python赛道第一名

🏅2022年CSDN原力计划优质作者

🏅阿里云ACE认证高级工程师

🏅阿里云开发者社区专家博主

💊交流社区CSDN云计算交流社区欢迎您的加入!

目录

1、按天日志切割

[1.1 测试配置是否正确](#1.1 测试配置是否正确)

[1.2 启动配置生效](#1.2 启动配置生效)

2、按大小切割日志

[2.1 测试配置是否正确](#2.1 测试配置是否正确)

[2.2 启动配置生效](#2.2 启动配置生效)


1、按天日志切割

确保你的系统已经安装了 logrotate 工具,若未安装,则执行如下命令安装

bash 复制代码
apt update
apt install -y logrotate

在/etc/logrotate.d/目录下创建一个配置文件,文件名可以自定义,文件内容如下:

bash 复制代码
# /etc/logrotate.d/cutofflog.conf
/home/work/logs/applogs/pocserver.log { 	#实际日志文件路径  
    daily               	# 每天切割  
    missingok           	# 如果日志文件不存在,不报错  
    notifempty          	# 如果日志文件为空,不进行切割  
    create 0640 root root  	# 切割后创建新日志文件,权限为0640,属于user和group  
    rotate 31           	# 保留31个旧的日志文件,即大约一个月的日志  
    delaycompress       	# 延迟压缩,直到下一次切割  
    compress            	# 使用gzip压缩  
    dateext             	# 使用日期作为扩展名  
    dateformat -%Y%m%d 		# 日期格式,这里是年月日  
    sharedscripts       	# 如果有多个日志文件,则只执行一次脚本命令  
    postrotate          	# 在切割后执行的命令(可选)  
    # service your-service reload 或者其他你需要的命令  
    endscript  
}

logrotate 每天会自动运行,并按照上述配置切割、压缩日志文件。切割后的文件名会带有日期扩展名,例如 logfile.log-20230425.gz

1.1 测试配置是否正确

bash 复制代码
#-d 选项表示调试模式,它会显示 logrotate 将要执行的操作,但不会真正执行切割和压缩
logrotate -d /etc/logrotate.d/cutofflog.conf

1.2 启动配置生效

bash 复制代码
# 不加选项会真正执行切割和压缩
logrotate /etc/logrotate.d/cutofflog.conf

2、按大小切割日志

确保你的系统已经安装了 logrotate 工具,若未安装,则执行如下命令安装

bash 复制代码
apt update
apt install -y logrotate

在/etc/logrotate.d/目录下创建一个配置文件,文件名可以自定义,文件内容如下:

bash 复制代码
# /etc/logrotate.d/cutofflog.conf  
/home/work/logs/applogs/pocserver.log {  
    size 10M       # 当日志文件达到10MB时切割
    missingok      # 如果日志文件不存在,不报错
    notifempty     # 如果日志文件为空,不进行切割
    create 0640 root root  # 切割后创建新日志文件,权限为0640,属于user和group
    compress       # 使用gzip压缩
    delaycompress  # 延迟压缩,和下一份日志一起压缩
    dateext        # 使用日期作为扩展名
    dateformat -%Y%m%d # 日期格式,这里是年月日
    sharedscripts  # 如果有多个日志文件,则只执行一次脚本命令
    postrotate      # 在切割后执行的命令(可选)
        # 这里可以放置重启服务或者重新加载配置的命令,例如:
        # service your-service reload
    endscript  
}

logrotate 每天会自动运行,并按照上述配置切割、压缩日志文件。

2.1 测试配置是否正确

bash 复制代码
#-d 选项表示调试模式,它会显示 logrotate 将要执行的操作,但不会真正执行切割和压缩
logrotate -d /etc/logrotate.d/cutofflog.conf

2.2 启动配置生效

bash 复制代码
# 不加选项会真正执行切割和压缩
logrotate /etc/logrotate.d/cutofflog.conf

👑👑👑结束语👑👑👑

相关推荐
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟4 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE6 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
看山还是山,看水还是。7 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君7 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go7 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell