首页/新闻资讯/正文详情

Mac 当主机,Linux 当服务器(21)logrotate,别让日志把磁盘撑爆

发布时间:2026/11/3 2:02:47 来源:云帆数科 栏目:资讯中心
Mac 当主机,Linux 当服务器(21)logrotate,别让日志把磁盘撑爆
Mac 学 Linux 入门(21):logrotate,别让日志把磁盘撑爆摘要:truncate只是「把杯子倒空」,杯子还在接水。这篇讲清 Linux 自带的日志切割工具logrotate:把 Ubuntu 默认的 nginx 配置逐行拆开讲,搞懂daily/rotate/compress/delaycompress/create/sharedscripts/postrotate;再用-d模拟、-f强制切割,亲眼看清.1和.2.gz是怎么排的;最后是日志切割最经典的事故——切完日志 Nginx 还在写旧文件,以及copytruncate为什么只能当备选。文末还加了一条能提前预警的 PromQL。承接上篇:磁盘告警处理完了,truncate把磁盘从 93% 拉回了 75%。一、老周的追问早上到工位,小林把昨晚的磁盘告警处理过程汇报了一遍。老周听完,点了点头,然后问了一个问题:「你昨天truncate了日志,磁盘从 93% 降到 75%。那明天呢?」「明天……日志继续写,继续涨?」「对。」老周说,「**你truncate是『把杯子倒空』,但杯子还在接水。**你今天倒一次,明天它又满了。你得让杯子自动换,而不是手动倒。」「怎么自动换?」「logrotate。」老周说,「Linux 自带的日志切割工具。它按时间或大小,自动把旧日志切走、压缩、保留一定数量、删除更早的。你配好之后,就不用管了。」「那我昨天为什么没想到?」「因为你还没学。」老周说,「今天教你。配完这个,你以后不会再因为日志满磁盘被告警吵醒了。」二、logrotate是什么?「它干四件事:」第一,切割。「把当前日志改名,比如access.log改成access.log.1,然后让 Nginx 重新打开一个新的access.log继续写。」第二,压缩。「旧日志用gzip压缩。access.log.1变成access.log.1.gz。」第三,保留。「只保留最近 N 份,比如 14 份。第 15 份自动删除。」第四,定时。「logrotate由cron或systemd timer定时触发,默认每天跑一次。」「那它怎么知道要切割哪些日志?」「看配置文件。主配置在/etc/logrotate.conf,各个服务的配置在/etc/logrotate.d/下。」ls/etc/logrotate.d/输出:apt bootlog dpkg nginx rsyslog ufw ...「看到了吗?nginx已经有配置文件了。」老周说,「你打开看看。」cat/etc/logrotate.d/nginx输出:/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi \ endscript postrotate invoke-rc.d nginx rotate /dev/null 21 endscript }「这是 Ubuntu 默认的 Nginx 日志切割配置。」老周说,「它已经配好了,但你从来没检查过,对不对?」小林脸一红:「我没看过。」「所以你磁盘满了,不是因为没有logrotate,而是因为『你没有验证它到底有没有在跑』。」老周说,「今天你把这份配置搞懂,再验证一遍。」三、logrotate配置详解/var/log/nginx/*.log—— 匹配/var/log/nginx/下所有.log文件。access.log和error.log都会被处理。daily—— 每天切割一次。也可以写weekly、monthly、size 100M。missingok—— 如果日志文件不存在,不报错,继续处理下一个。rotate 14—— 保留 14 份旧日志。第 15 份自动删除。daily+rotate 14,就是保留 14 天。compress—— 压缩旧日志,用gzip。delaycompress—— 延迟压缩。刚切割的日志不立刻压缩,等下一次切割时再压。为什么?因为有些程序切割后还在写旧文件,立刻压缩会报错。notifempty—— 如果日志是空的,不切割。create 0640 www-data adm—— 切割后创建新日志文件,权限0640,属主www-data,属组adm。如果不写create,新日志可能权限不对,Nginx 写不了。sharedscripts—— 多个日志文件,postrotate只执行一次。不写的话,每个日志文件都会执行一次。prerotate ... endscript—— 切割前执行的脚本。postrotate ... endscript—

相关推荐

Capacitor Service Worker 加载失败:改一个配置项快速搞定
Capacitor Service Worker 加载失败:改一个配置项快速搞定

Capacitor Service Worker 加载失败:改一个配置项快速搞定 【免费下载链接】capacitor Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️ 项目地址: https://gitcode.com/gh_mirrors/ca/capacitor 你把 PWA 用 Capacit… · 2026/11/2 16:09:51

MPC-HC 视频增强教程:从渲染器设置到 shader 调色的画质调校
MPC-HC 视频增强教程:从渲染器设置到 shader 调色的画质调校

MPC-HC 视频增强教程:从渲染器设置到 shader 调色的画质调校 【免费下载链接】mpc-hc Media Player Classic 项目地址: https://gitcode.com/gh_mirrors/mp/mpc-hc MPC-HC 视频增强不必依赖第三方插件,把渲染器设置选对、用内置的 shader 调色与色… · 2026/11/2 12:44:32

MCP 2026-07-28 规范拆解:无状态协议核心怎么让 MCP 服务器跑在普通负载均衡后面
MCP 2026-07-28 规范拆解:无状态协议核心怎么让 MCP 服务器跑在普通负载均衡后面

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/1 1:47:25

2024年TensorFlow实战指南:从Keras到部署,对比PyTorch
2024年TensorFlow实战指南:从Keras到部署,对比PyTorch

打开PyPI的下载统计页,TensorFlow依然是整个深度学习生态里下载量最大的框架之一。但在很多新手群里,一提TensorFlow总有人觉得这是“老框架”,好像已经被PyTorch全面超越了。我自己的感觉是,这种印象有对的部分,也有很… · 2026/11/3 3:51:38

MNN部署YOLO人体关键点检测:C++工程CPU/GPU全流程实现
MNN部署YOLO人体关键点检测:C++工程CPU/GPU全流程实现

做部署这些年,我一直觉得“跑通模型”只是第一步,真正让人头疼的是把模型塞进C工程里,还要在CPU和GPU两种条件下都稳定工作。这个项目就是把YOLOv8-Pose、YOLO11-Pose、YOLO26-Pose人体关键点检测模型,用MNN部署到C环境&#xff0… · 2026/11/3 3:51:38

华为手机离线AI自主开发闭环实战
华为手机离线AI自主开发闭环实战

1. 项目本质与真实场景还原:一台“裸机”华为手机上的AI自主开发闭环你看到标题第一反应可能是:“这不就是用AI写个App再装上去?”——错了。这个项目真正令人头皮发麻的点,根本不在“写代码”,而在于整个开发-编译-安… · 2026/11/3 3:51:38

AI Agent技能管理器:基于SKILL.md与Redis的可视化操作系统
AI Agent技能管理器:基于SKILL.md与Redis的可视化操作系统

1. 这不是又一个“AI Agent 配置面板”,而是一套可落地的技能生命周期操作系统你有没有试过给 AI Agent 写了十几个工具函数——天气查询、数据库读写、邮件发送、PDF 解析、Excel 表格生成……结果两周后打开代码,连哪个函数叫什么、参数怎么传、返回值… · 2026/11/3 3:51:38

Kafka核心术语与架构设计深度解析
Kafka核心术语与架构设计深度解析

1. Kafka核心术语全景解析作为分布式消息系统的标杆,Kafka的设计哲学体现在其特有的术语体系中。初次接触Kafka时,这些术语就像密码本里的暗号,理解它们才能与Kafka进行有效对话。让我们从生产者-消费者的基础模型开始,逐步拆解每… · 2026/11/3 3:51:38

深度学习在食品图像分类中的应用与实践
深度学习在食品图像分类中的应用与实践

1. 深度学习食品分类项目概述食品分类是计算机视觉领域一个极具实用价值的课题。我在实际项目中发现,利用深度学习技术来自动识别和分类食品图像,不仅能大幅提升效率,还能避免人工分类的主观性和疲劳误差。这个技术可以应用于餐饮管理、健康监… · 2026/11/3 3:50:37

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码