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

👑👑👑结束语👑👑👑

相关推荐
电鱼智能的电小鱼11 分钟前
基于 EFISH-SBC-RK3588 的无人机通信云端数据处理模块方案‌
linux·网络·人工智能·嵌入式硬件·无人机·边缘计算
星霜旅人26 分钟前
【Linux】Vim文本编辑器
linux
難釋懷1 小时前
Shell脚本-for循环应用案例
linux·运维·服务器·bash
何双新1 小时前
L3-3、从单轮到链式任务:设计协作型 Prompt 系统
服务器·搜索引擎·prompt
昊昊昊昊昊明1 小时前
10天学会嵌入式技术之51单片机-day-7
linux·运维·网络
Sonetto19991 小时前
Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?它能干哈?
运维·前端·nginx
达斯维达的大眼睛1 小时前
如何在Linux用libevent写一个聊天服务器
linux·运维·服务器·网络
末央&1 小时前
【Linux】gdb工具,Linux 下程序调试的 “透视眼”
linux·运维·服务器
绵绵细雨中的乡音2 小时前
Linux进程学习【进程状态】
linux
Zhuai-行淮2 小时前
施磊老师基于muduo网络库的集群聊天服务器(七)
服务器·网络·php