当前位置:

首页 > 系统应用 > 如何在Linux中配置具体的日志文件自动切分

如何在Linux中配置具体的日志文件自动切分

本文目录

    logrotate 的配置文件需要放到 /etc/logrotate.d/ 目录里,这一步不能放错。原因很直接:cron 实际上只会通过 /etc/cron.daily/logrotate 去调用 /etc/logrotate.conf,而后者又是靠 include /etc/logrotate.d

    logrotate 的配置文件需要放到 /etc/logrotate.d/ 目录里,这一步不能放错。原因很直接:cron 实际上只会通过 /etc/cron.daily/logrotate 去调用 /etc/logrotate.conf,而后者又是靠 include /etc/logrotate.d 来加载具体配置的,换到其他路径,系统默认并不会识别。针对 Nginx 日志,通常要配上 daily、dateext、dateyesterday 和 dateformat -%Y-%m-%d,另外还得在 postrotate 里使用 kill -USR1 做安全重载,这样日志切分后服务本身也能平稳接管新文件。

    如何在Linux中配置具体的日志文件自动切分

    必须把配置文件放到 /etc/logrotate.d/ 目录下,否则 cron 永远不会执行它。

    logrotate 配置文件该放哪儿、怎么加载

    logrotate 并不会去“满系统乱找”配置,它实际上只看两个固定位置:/etc/logrotate.conf(主配置文件)和 /etc/logrotate.d/ 目录下的所有配置。系统每天会通过 /etc/cron.daily/logrotate 这个脚本执行 logrotate /etc/logrotate.conf,而主配置里默认又写着 include /etc/logrotate.d。说白了,Nginx、MySQL 这类服务的日志轮转配置之所以要放进这个目录,原因就在这里。

    常见错误:

    • 把配置写在 /root/nginx.logrotate 或 /usr/local/etc/logrotate.d/nginx,手动运行 logrotate -f 成功了,就以为部署好了——其实 cron 根本看不到
    • 给配置文件加 .conf 后缀(比如 nginx.conf),logrotate 会直接跳过它
    • 权限不是 644、属主不是 root:root,某些发行版会静默忽略

    如何为 Nginx 日志配置按天切分并带日期后缀

    关键不是只加 dateext,而是要配合 daily 和 dateyesterday 才能生成形如 access.log-2026-07-08 的文件名(即“昨天”的日期,语义更准确)。

    示例配置(写入 /etc/logrotate.d/nginx):

    /var/log/nginx/*.log {
    daily
    dateext
    dateyesterday
    dateformat -%Y-%m-%d
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
    pidfile=$(nginx -t 2>&1 | grep "pid" | awk '{print $NF}')
    [ -f "$pidfile" ] && kill -USR1 $(cat "$pidfile")
    endscript
    }

    注意点:

    • dateformat 必须紧接 dateext 使用,且格式字符串前要带短横线(-%Y-%m-%d),否则生成的文件名可能缺分隔符
    • postrotate 里别用 systemctl reload nginx:它会触发 worker 进程重启,有丢请求风险;kill -USR1 是原子重开日志句柄,零停机
    • pidfile 路径不能硬编码——nginx -t 输出里的 pid 行才是真实路径,兼容不同安装方式

    按大小切分 vs 按时间切分,怎么选参数

    如果日志增长不均匀(比如白天流量大、夜间几乎为零),单靠 daily 可能某天白切一次空文件;这时应优先用 size 触发,例如 size +50M(单位必须大写 M,小写 m 会报错)。

    两者可以共存:

    • daily 和 size +50M 同时存在时,满足任一条件即触发轮转
    • rotate 7 控制的是保留份数,和 daily 无关——它不是“保留最近 7 天”,而是“最多留 7 个归档文件”
    • 高频小日志(如 debug 级)慎用 compress:压缩开销可能超过节省的空间
    • 如果服务不支持重载(比如某些 Ja va 应用),得用 copytruncate,但要注意:它靠复制+清空原文件实现,期间可能丢几行日志

    调试和验证配置是否生效

    别等第二天看效果,先本地验证:

    • 语法检查:logrotate -d /etc/logrotate.d/nginx —— 只打印动作,不真执行,重点看有没有 “error” 或 “skipping”
    • 强制立即执行:logrotate -f /etc/logrotate.d/nginx —— 生产环境慎用,避免和 cron 冲突导致重复切割
    • 查上次执行记录:cat /var/lib/logrotate.status,确认对应日志路径的最后轮转时间
    • 切完立刻检查:ls -l /var/log/nginx/,看新文件权限是否是 0640、旧文件名是否含日期、postrotate 是否成功发信号(ps aux | grep nginx 看 master 进程是否还在)

    最容易被忽略的是 missingok:Nginx 刚装好还没产生日志时,没有它,整个 logrotate 任务会中断,后续所有配置都不执行。

    本文内容来源于网友投稿,如有侵权请联系删除。
    作者最新文章
    系统应用
    相关文章 更多
    win10关闭WindowsHello后如何取消开机密码
    win10关闭WindowsHello后如何取消开机密码

    Win10关闭Windows Hello后开机仍要密码?本文详解如何删除PIN码、设置netplwiz自动登录以及清空本地账户密码,解决开机免密登录问题。

    win10取消开机密码要不要关闭屏幕保护密码
    win10取消开机密码要不要关闭屏幕保护密码

    想取消Win10开机密码?先分清是启动登录还是屏保恢复。本文详解如何通过netplwiz设置自动登录,以及如何关闭屏幕保护恢复时的登录验证,同时保留睡眠唤醒的安全设置,确保操作准确且不影响电脑安全。

    win10微软账户如何取消开机密码直接进桌面
    win10微软账户如何取消开机密码直接进桌面

    想在Win10开机时跳过密码直接进入桌面?本文详解Microsoft账户下的PIN设置、本地账户切换及netplwiz自动登录配置,并区分开机验证与锁屏恢复设置,助你安全高效地优化登录体验。

    win10取消开机密码后,系统自动更新会重置设置吗?
    win10取消开机密码后,系统自动更新会重置设置吗?

    Win10系统更新后开机又要求输入密码?这通常不是密码被重置,而是自动登录设置或Windows Hello策略被更改。本文详解如何区分密码问题与登录配置问题,检查账户状态及组织策略,并安全恢复开机自动进入桌面的设置。

    微软官网下载Win10 64位官方ISO镜像的完整步骤
    微软官网下载Win10 64位官方ISO镜像的完整步骤

    详解如何从微软官网获取纯净的Windows 10 64位ISO镜像文件,包括正确的下载入口、版本与语言选择技巧,以及下载后的完整性校验步骤,确保系统安装源安全可靠。

    Linux如何开启端口号?开放端口命令详解
    Linux如何开启端口号?开放端口命令详解

    详细讲解Linux如何开启端口号以及常用的开放端口命令。

    docker容器自动重启怎么解决 排查原因与修复方法
    docker容器自动重启怎么解决 排查原因与修复方法

    遇到Docker容器频繁自动重启?本文提供从查看容器日志、解读退出代码到配置Restart Policy的完整排查与修复方案,确保服务稳定性。

    Linux设置静态路由命令与永久生效教程
    Linux设置静态路由命令与永久生效教程

    学习如何在Linux中使用命令行添加临时静态路由,并通过修改网络配置文件实现重启后依然有效的永久静态路由设置,涵盖CentOS和Ubuntu的不同配置方法。

    摄像头连接电脑后怎么打开查看实时画面教程
    摄像头连接电脑后怎么打开查看实时画面教程

    摄像头连接电脑后不知如何查看画面?本教程演示如何使用Windows自带的“相机”应用快速调取实时视频流,无需下载额外软件,步骤简单直观,适用于大多数USB及内置摄像头。

    如何在 windows 11 关闭自动关机
    如何在 windows 11 关闭自动关机

    针对 Windows 11 电脑在无人操作时自动关机或重启的问题,本文详解如何通过任务计划程序禁用更新重启任务,并调整电源睡眠策略,从根源解决非预期的自动关机现象。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    macOS软件
    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    Mac软件 更多
    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

    灵活计算器
    灵活计算器
    macOS/iOS/Android

    灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

    WINDOWS 更多
    3dmax(3ds max)
    3dmax(3ds max)
    Windows

    Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。