0

0

Linux如何进行日志切割_Linux日志切割的实用配置方法

爱谁谁

爱谁谁

发布时间:2025-10-05 23:14:02

|

446人浏览过

|

来源于php中文网

原创

logrotate是Linux日志管理核心工具,通过配置文件定义轮转规则,支持按时间或大小切割日志,自动执行压缩、归档与删除,结合cron定期运行,确保日志高效管理且不占用过多磁盘空间。

linux如何进行日志切割_linux日志切割的实用配置方法

Linux系统中日志文件会随着时间不断增长,过大的日志不仅占用磁盘空间,还会影响排查问题的效率。因此,合理地进行日志切割非常必要。最常用且高效的方法是使用 logrotate 工具,它能自动按时间或大小对日志进行轮转、压缩、归档和删除旧日志。

1. logrotate 的基本工作原理

logrotate 是 Linux 发行版中预装的日志管理工具,通常每天由 cron 自动调用执行。它读取配置文件,判断哪些日志需要处理,并根据规则执行以下操作:

  • 将当前日志重命名(如 access.log → access.log.1)
  • 创建新的空日志文件供服务继续写入
  • 压缩旧日志以节省空间
  • 删除超过保留期限的旧日志

所有行为都通过配置文件定义,灵活且无需手动干预。

2. 常见配置文件位置与结构

logrotate 的主配置文件通常是 /etc/logrotate.conf,而具体服务的日志规则放在 /etc/logrotate.d/ 目录下。例如 Nginx、Apache、MySQL 等都会在此目录添加自己的配置文件。

一个典型的日志切割配置如下:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}

各参数说明:

  • daily:每天轮转一次
  • missingok:日志不存在时不报错
  • rotate 7:保留最近 7 个备份
  • compress:启用压缩(通常为 gzip)
  • delaycompress:延迟压缩,最新一份不立即压缩
  • notifempty:日志为空时不轮转
  • create 0640 user group:轮转后创建新日志并设置权限和所属
  • sharedscripts:postrotate 脚本只在所有日志处理完后运行一次
  • postrotate...endscript:轮转后执行的命令,常用于通知服务重新打开日志文件

3. 按大小切割日志

除了按天切割,还可以根据日志大小触发轮转。适用于访问频繁、日志增长快的服务。

示例配置:

/var/log/app/myapp.log {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    create 644 appuser appgroup
    postrotate
        kill -USR1 $(cat /var/run/myapp.pid)
    endscript
}

当日志达到 100MB 时就会触发轮转,最多保留 5 份备份。

Synths.Video
Synths.Video

一键将文章转换为带有真人头像和画外音的视频

下载

4. 手动测试与调试

在修改配置后,建议先手动测试是否生效:

查看 logrotate 如何处理某个配置:

logrotate -d /etc/logrotate.d/myapp

-d 表示 debug 模式,不会真正执行,仅显示过程。

强制执行一次轮转(用于验证):

logrotate -f /etc/logrotate.d/myapp

-f 表示强制运行,即使未到触发条件。

检查系统日志确认是否有错误:

tail /var/log/syslog | grep logrotate

或查看 journal 日志:

journalctl -u logrotate
基本上就这些。只要配置好 logrotate,Linux 系统的日志就能长期稳定管理,避免磁盘被撑满。关键是根据实际需求选择时间或大小触发,并确保服务能正确重载日志句柄。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

664

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

246

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

281

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

514

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

253

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

386

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

529

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

599

2023.08.14

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

8

2026.01.20

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 804人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号