Linux日志怎么切割_Linux日志通过修改/etc/logrotate.conf全局配置的指南

发布时间 - 2025-11-17 00:00:00    点击率:
logrotate通过配置/etc/logrotate.conf实现日志自动轮转,支持周期切割、压缩保留及错误处理,推荐结合全局策略与/etc/logrotate.d/下服务独立配置,如Nginx按日轮转并重载服务,通过logrotate -d/-f测试验证规则生效,避免磁盘溢出。

Linux系统中的日志文件会随着时间不断增长,过大的日志文件不仅占用磁盘空间,还会影响系统性能和排查问题的效率。logrotate 是 Linux 上用于自动管理日志轮转(切割、压缩、删除旧日志)的工具。通过修改 /etc/logrotate.conf 文件,可以统一配置全局日志行为。

理解 logrotate.conf 的基本结构

/etc/logrotate.conf 是 logrotate 的主配置文件,定义了默认策略和包含其他配置的目录。常见的内容如下:

# 全局配置
weekly
rotate 4
create
dateext
include /etc/logrotate.d
  • weekly:默认每周轮转一次日志
  • rotate 4:保留4个历史日志版本,超过则删除最老的
  • create:轮转后创建新的空日志文件
  • dateext:使用日期作为轮转文件的后缀(如 access.log-20250405)
  • include /etc/logrotate.d:包含该目录下所有服务的独立配置(推荐方式)

修改全局策略以适应实际需求

如果希望改变所有日志的默认行为,可以直接编辑 /etc/logrotate.conf。例如:

  • weekly 改为 daily 实现每日切割
  • 调整 rotate 4rotate 7 保留更多备份
  • 添加 compress 启用gzip压缩,节省空间
  • 加入 missingok 避免因日志临时缺失报错
  • 使用 notifempty 不对空文件进行轮转

修改后示例片段:

daily
rotate 7
compress
missingok
notifempty
create
dateext
include /etc/logrotate.d

针对特定服务的配置建议

虽然可以修改全局配置,但更推荐在 /etc/logrotate.d/ 下为具体服务单独设置。例如 Nginx 的配置文件 /etc/logrotate.d/nginx

/var/log/nginx/*.log {
    daily
    rotate 10
    missingok
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}
  • sharedscripts:多个日志只执行一次 postrotate 脚本
  • postrotate...endscript:轮转后重新加载服务,确保写入新文件
  • create 0640:指定新日志权限和所属用户组

测试与验证配置是否生效

修改配置后,应先测试语法正确性,避免自动任务失败:

  • 运行 logrotate -d /etc/logrotate.conf 查看调试输出,确认匹配规则
  • 使用 logrotate -f /etc/logrotate.conf 强制执行一次轮转(可用于验证)
  • 检查目标日志目录是否有新生成的 .log-日期 文件
  • 查看压缩情况,确认 .gz 文件生成

系统通常通过 cron 自动执行 logrotate,无需手动干预日常运行。

基本上就这些。合理设置 /etc/logrotate.conf 和子配置,能有效管理日志生命周期,避免磁盘被撑满。关键是根据业务日志量选择合适的轮转频率和保留策略。不复杂但容易忽略细节。


# linux  # go  # nginx  # access  # 工具  # ai  # 配置文件  # linux系统  # red  # include 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用AI帮你把自己的生活经历写成一个有趣的故事?  linux top下的 minerd 木马清除方法  如何用5美元大硬盘VPS安全高效搭建个人网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  JavaScript如何实现倒计时_时间函数如何精确控制  如何挑选高效建站主机与优质域名?  如何破解联通资金短缺导致的基站建设难题?  python中快速进行多个字符替换的方法小结  免费视频制作网站,更新又快又好的免费电影网站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  Android GridView 滑动条设置一直显示状态(推荐)  敲碗10年!Mac系列传将迎来「触控与联网」双革新  JavaScript如何操作视频_媒体API怎么控制播放  高性价比服务器租赁——企业级配置与24小时运维服务  MySQL查询结果复制到新表的方法(更新、插入)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Python数据仓库与ETL构建实战_Airflow调度流程详解  Swift开发中switch语句值绑定模式  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何在局域网内绑定自建网站域名?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  bootstrap日历插件datetimepicker使用方法  android nfc常用标签读取总结  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  如何用wdcp快速搭建高效网站?  JS实现鼠标移上去显示图片或微信二维码  详解jQuery停止动画——stop()方法的使用  如何在Tomcat中配置并部署网站项目?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何确认建站备案号应放置的具体位置?  智能起名网站制作软件有哪些,制作logo的软件?  免费网站制作appp,免费制作app哪个平台好?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  大学网站设计制作软件有哪些,如何将网站制作成自己app?  JavaScript常见的五种数组去重的方式  如何在建站宝盒中设置产品搜索功能?  如何在万网ECS上快速搭建专属网站?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  微信h5制作网站有哪些,免费微信H5页面制作工具?  微信小程序 HTTPS报错整理常见问题及解决方案  网站建设保证美观性,需要考虑的几点问题!  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  手机网站制作与建设方案,手机网站如何建设?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】