为什么重启服务器后日志切割规则失效了

冬婷小哥_4077

冬婷小哥_4077

2026-09-11

683人浏览

原创

logrotate不随系统启动自动加载,主因是cron服务未启用或未运行;需检查systemctl is-active/enabled crond,确保其active且enabled,并验证/etc/logrotate.d/配置文件存在、权限正确、末尾有换行符,同时确认postrotate中命令使用绝对路径及nginx.pid路径匹配。

为什么重启服务器后日志切割规则失效了

logrotate 配置没随系统启动自动加载

logrotate 本身不常驻内存,它靠 cron 定时触发。重启后如果 cron 服务没起来,或没被启用,规则就永远不会执行。常见于最小化安装的 CentOS/RHEL 系统,默认可能没装 vixie-cron,或者 systemd 里 crond.service 处于 disabled 状态。

检查方式:systemctl is-active crond 应返回 activesystemctl is-enabled crond 应返回 enabled。若不是,运行:systemctl enable --now crond

logrotate 脚本权限或路径被重置

你手动放在 /etc/logrotate.d/ 下的配置文件,如果服务器是通过镜像克隆、模板部署或某些自动化工具重装过系统,该目录内容可能被覆盖或清空。尤其宝塔面板用户容易遇到:它会定期校验并重写自己的日志配置,把你加的全局规则删掉。

验证方法:ls -l /etc/logrotate.d/ | grep -E "(nginx|dify|your-custom-name)";若缺失,需重新放入并确认权限为 644,属主为 root:root

常见疏漏点:

当贝AI
当贝AI

一款AI工具,主要用于免登录体验DeepSeek满血版,适合需要提升相关任务效率的用户。

下载
  • 文件末尾漏了换行符,导致 logrotate 解析失败(静默跳过)
  • 配置中用了相对路径或变量(如 $HOME),而 logrotate 运行时没有 shell 环境,会直接报错退出
  • postrotate 段里调用的 nginx -s reopenkill -USR1 命令路径没写绝对路径(如用 /usr/sbin/nginx 而非 nginx

nginx.pid 文件路径与配置不匹配

logrotatepostrotate 脚本里通常要读取 nginx.pid 来发信号。但 nginx 编译安装、包管理安装、宝塔安装的 pid 路径各不相同:/var/run/nginx.pid/usr/local/nginx/logs/nginx.pid/www/server/nginx/logs/nginx.pid。重启后若 nginx 本身没自启,或 pid 路径在配置里写错了,kill -USR1 就会失败,旧日志继续写入,新日志文件为空。

确认当前真实路径:ps aux | grep nginx | grep master | awk '{print $NF}' —— 看启动命令里带的 -p 参数;或查 nginx 配置:grep pid /www/server/nginx/conf/nginx.conf(宝塔)或 grep pid /usr/local/nginx/conf/nginx.conf(源码编译)

容器环境里 logrotate 根本没运行

如果你的日志切割是在容器内做的(比如直接在 Docker 容器里跑 logrotate),那重启宿主机后,容器默认不会自动重启,或者即使设了 restart: alwayscrond 在容器里也大概率没开——绝大多数基础镜像不预装 cron,更不会启用它。

此时真正起作用的应是宿主机上的 logrotate,且日志路径必须挂载到宿主机可访问位置(如 -v /host/logs:/app/logs),再由宿主机的 /etc/logrotate.d/xxx 针对 /host/logs/*.log 配置。否则容器一重启,所有定时逻辑全失效。

最常被忽略的一点:logrotate 不报错也不提示失败,它只是默默跳过有问题的配置。所以别只看日志文件有没有被切,一定要查 /var/lib/logrotate/status 里最后执行时间,再配合 logrotate -d /etc/logrotate.conf(调试模式)看是否真被加载和执行了。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

397

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

820

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2352

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

796

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

689

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

354

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2096

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3852

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

627

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观Linux入门视频教程
尚观Linux入门视频教程

共22课时 | 5.3万人学习

尚观Linux初级视频教程
尚观Linux初级视频教程

共21课时 | 4.9万人学习

Linux入门级实战课程
Linux入门级实战课程

共10课时 | 1.5万人学习