Linux logrotate命令用法详解:进行日志转储(轮替)

yizhihongxing

当Linux服务器上的应用和服务不断运行时,它们产生的日志文件逐渐增大,可能会耗尽磁盘空间。而且,当日志文件太大,它们的读取和写入速度会变慢。因此,对于日志文件进行定期轮换非常重要,这就是 logrotate 工具发挥作用的地方。logrotate 命令可以自动压缩和备份旧的日志文件,并删除过期的日志文件,从而保持系统的稳定性和安全性。

logrotate的基本语法

logrotate 工具是 Linux 操作系统自带的,可以在终端中使用。它的基本语法如下:

logrotate [OPTIONS] CONFIG_FILE

其中,OPTIONS 包括:

  • -d:调试模式。在调试模式下,logrotate 命令不会删除或压缩任何文件,而是打印出它将要执行的操作和错误信息。
  • -f:强制操作。即使不需要轮换或需要轮换但还没到时间,也会强制运行 logrotate 工具。
  • -v:详细模式。在详细模式下,logrotate 命令会列出每个日志文件的详细信息,并在完成轮换后打印出总结。
  • -s STATE_FILE:使用给定的状态文件替代默认的状态文件。

其中,CONFIG_FILE 是一个包含了要轮换的日志文件的配置文件。配置文件通常存储在 /etc/logrotate.d 目录中,每个配置文件对应一种日志轮换方案。下面是一个示例配置文件:

/var/log/mylog {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /usr/bin/systemctl reload myapp.service > /dev/null 2>&1 || true
    endscript
}

该配置文件规定了针对 /var/log/mylog 文件进行每日轮换,最多保留 30 个历史版本。轮换后的日志文件将会被压缩并存储在 /var/log/mylog.1.gz 中。如果日志文件空,那么不会进行轮换。在轮换后,执行脚本 postrotate,在该脚本中可以进行需要的操作,例如重新加载服务。在脚本执行结束后,再执行 endscript

logrotate示例说明

示例一

先来看一个示例,一次性轮换多个日志文件。

如果我们有两个日志文件 /var/log/mylog1/var/log/mylog2,需要进行日志轮换。那么可以在 /etc/logrotate.d 目录下,添加一个 mylog 配置文件,内容如下:

/var/log/mylog1 /var/log/mylog2 {
    daily
    missingok
    rotate 10
    compress
    delaycompress
}

上述配置文件规定针对两个日志文件 /var/log/mylog1/var/log/mylog2,执行每日轮换,最多保留 10 个历史版本,轮换后的日志文件进行压缩并存储在 .1.gz 文件。如果日志文件不存在,会被忽略。在 /var/log 目录下,可以分别看到对应文件的历史版本。

示例二

现在假设我们的应用程序 myapp 使用日志文件 /var/log/myapp.log,为了防止日志文件过大,我们需要每天轮换一次,并保留最近 30 天的日志历史记录。每次轮换之后,我们希望重新加载 myapp 服务。

在 /etc/logrotate.d 目录下,新建一个 myapp 配置文件,内容如下:

/var/log/myapp.log {
    daily
    rotate 30
    compress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /usr/bin/systemctl reload myapp.service > /dev/null 2>&1 || true
    endscript
}

上述配置文件规定针对 /var/log/myapp.log 日志文件,执行每日轮换,最多保留 30 个历史版本。轮换后的日志文件进行压缩并存储在 .1.gz 文件,如果没有日志数据,不进行轮换。创建存储新日志的文件的文件权限为 640,拥有者为 root,组为 adm。在这个设置之后,执行 sharedscripts,指定脚本 postrotate 中的操作。在此脚本中,重新加载 myapp 服务.

总之,logrotate 可以自动进行日志文件轮换,从而实现限制日志文件大小,保护系统磁盘和增加服务器的稳定性。在进行配置的时候,要学会运用以上的语法来编写 logrotate 配置文件,才能让它更好地地为我们的服务进行管理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux logrotate命令用法详解:进行日志转储(轮替) - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • Linux启动引导程序(GRUB)加载内核的过程

    GRUB是Linux启动引导程序,会在Linux系统启动时加载内核。下面是GRUB加载内核的完整攻略: 打开计算机并开始引导过程。BIOS将检测计算机内安装的所有硬件设备,并将检测到的信息存储到内存中。 BIOS将检查计算机的启动设备列表,查找能启动操作系统的设备。一旦找到一个可用的启动设备,BIOS会从该设备中读取引导扇区。 引导扇区位于启动设备的第一个物…

    Linux启动管理 2023年3月25日
    00
  • 详解Linux LVM逻辑卷管理机制(硬盘分区管理机制)

    Linux LVM(Logical Volume Manager)是一项在Linux系统下用于对硬盘进行分区和管理的技术。相对于传统的硬盘分区方式,LVM技术可以提供更加灵活、高效的硬盘管理方式,使得管理者可以更加方便地调整硬盘分区,并能够快速地扩容、合并分区等操作。 LVM的核心机制是逻辑卷(Logical Volume,LV),它是一块虚拟的硬盘空间,可…

    Linux高级文件系统管理 2023年3月25日
    00
  • Linux fsck命令:检测和修复文件系统

    fsck(file system check)命令用于检测和修复Linux文件系统中的错误,支持多种文件系统,是Linux维护工作中比较重要的命令之一。 本攻略将分为以下几部分介绍fsck命令: fsck命令的语法及常用参数 fsck命令的使用步骤及示例 fsck命令常见问题及解决方法 1. fsck命令的语法及常用参数 fsck命令的语法如下: fsck …

    Linux文件系统管理 2023年3月25日
    00
  • 详解Linux wget命令:从网页下载文件

    下面就为大家介绍一下Linux wget命令的作用和使用方法。 一、wget命令的作用 wget命令是一个在Linux系统上下载文件的命令,可用于HTTP、HTTPS、FTP、FTP over SSL/TLS等协议的下载,支持断点续传,具有自动适配流量控制和速度限制等功能。 二、wget命令的使用方法 wget命令的基本语法格式如下: $ wget [opt…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux dig命令:查询 DNS 服务器

    Linux dig命令是一个常用于DNS(Domain Name System,域名系统)查询的工具。通过使用dig命令,我们可以获取域名解析的相关信息,比如IP地址、域名服务器等等。 命令格式 dig命令的基本格式为: dig [选项] [域名] [查询类型] [查询类别] 其中,选项可以选择性地使用,默认为不加选项;域名与查询类型则是必须指定的,查询类别…

    Linux函数大全 2023年3月24日
    00
  • Linux安装PHP过程详解

    Linux系统安装PHP过程可以分为以下几个步骤: 安装必要的软件:首先需要安装一些必要的软件,包括:GCC编译器、Make、OpenSSL以及libssl-dev库。 sudo apt-get update sudo apt-get install gcc make openssl libssl-dev 下载PHP源码包:可通过PHP官网下载最新版本的PH…

  • 详解RPM包的依赖性及其解决方案

    RPM包的依赖性指的是一个软件依赖于其他的软件包或者库才能够正常运行。在安装RPM包时,如果存在依赖关系,则必须先安装依赖的软件包或者库,否则安装过程会失败。下面是RPM包依赖性及其解决方案的完整攻略: 查看RPM包依赖性 在安装一个RPM包之前,可以使用以下命令查看其所依赖的软件包: rpm -qpR package.rpm 其中,package.rpm是…

    Linux软件安装 2023年3月25日
    00
  • Linux MySQL安装过程(详解版)

    MySQL是一款著名的关系型数据库管理系统,可以在Linux系统中安装运行。下面是Linux下安装MySQL的完整教程。 准备工作 首先,需要一台运行Linux操作系统的计算机,并且具备管理员权限。接着,需要安装以下软件: MySQL安装文件 tar命令 从官方网站下载MySQL安装文件后,使用下面的命令进行解压缩: tar -xzvf mysql-5.7.…

合作推广
合作推广
分享本页
返回顶部