当前位置:   article > 正文

Linux logrotate命令教程:如何轻松管理你的系统日志文件(附实例详解和注意事项)

linux logrotate

Linux logrotate命令介绍

logrotateLinux系统中的日志管理工具,它可以自动地轮换、压缩、删除和邮件系统日志文件。logrotate可以处理任何你想要的日志文件,并且不需要修改日志生成的方式。

Linux logrotate命令适用的Linux版本

logrotate命令在大多数Linux发行版中都是默认安装的,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等。如果你发现你的系统中没有安装logrotate,你可以使用下面的命令进行安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install logrotate  # 对于Debian、Ubuntu、Raspbian等使用apt的系统
[linux@bashcommandnotfound.cn ~]$ sudo yum install logrotate  # 对于CentOS 7、Fedora等使用yum的系统
[linux@bashcommandnotfound.cn ~]$ sudo dnf install logrotate  # 对于CentOS 8、Fedora等使用dnf的系统
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S logrotate  # 对于Arch Linux、Manjaro等使用pacman的系统
[linux@bashcommandnotfound.cn ~]$ sudo apk add logrotate  # 对于Alpine Linux使用apk的系统
  • 1
  • 2
  • 3
  • 4
  • 5

Linux logrotate命令的基本语法

logrotate的基本语法格式如下:

logrotate [options] config_file
  • 1

其中,options是命令选项,config_filelogrotate的配置文件。

Linux logrotate命令的常用选项或参数说明

下面是logrotate命令的一些常用选项:

选项说明
-d调试模式,显示出会进行的操作但并不真正执行
-f强制轮换
-m发送日志文件的邮件
-s状态文件名
-v显示错误信息

Linux logrotate命令实例详解

实例1:查看logrotate版本

[linux@bashcommandnotfound.cn ~]$ logrotate --version
  • 1

这个命令会显示出logrotate的版本信息。

实例2:强制轮换日志文件

[linux@bashcommandnotfound.cn ~]$ logrotate -f /etc/logrotate.conf
  • 1

这个命令会强制轮换/etc/logrotate.conf配置文件中指定的日志文件。

实例3:创建一个简单的logrotate配置文件

[linux@bashcommandnotfound.cn ~]$ cat > /etc/logrotate.d/myapp << EOF
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root adm
    postrotate
        /etc/init.d/myapp restart > /dev/null
    endscript
}
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这个实例创建了一个logrotate配置文件,用于管理/var/log/myapp/*.log的日志文件。这个配置文件的含义是:每天轮换一次日志文件,保留最近7天的日志文件,压缩旧的日志文件,如果日志文件不存在或者为空则忽略,每次轮换后重启myapp服务。

实例4:查看logrotate的状态

[linux@bashcommandnotfound.cn ~]$ cat /var/lib/logrotate/status
  • 1

这个命令会显示出logrotate的状态信息,包括每个日志文件最后一次被轮换的时间。

实例5:手动轮换指定的日志文件

[linux@bashcommandnotfound.cn ~]$ logrotate --force /etc/logrotate.d/myapp
  • 1

这个命令会强制轮换/etc/logrotate.d/myapp配置文件中指定的日志文件。

实例6:使用debug模式测试配置文件

[linux@bashcommandnotfound.cn ~]$ logrotate -d /etc/logrotate.d/myapp
  • 1

这个命令会在debug模式下运行logrotate,显示出会进行的操作但并不真正执行。这对于测试新的配置文件非常有用。

实例7:修改logrotate的状态文件路径

[linux@bashcommandnotfound.cn ~]$ logrotate -s /var/lib/myapp/logrotate.status /etc/logrotate.d/myapp
  • 1

这个命令会修改logrotate的状态文件路径,然后轮换/etc/logrotate.d/myapp配置文件中指定的日志文件。

实例8:使用-m选项发送日志文件

[linux@bashcommandnotfound.cn ~]$ cat > /etc/logrotate.d/myapp << EOF
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root adm
    mail root
    postrotate
        /etc/init.d/myapp restart > /dev/null
    endscript
}
EOF
[linux@bashcommandnotfound.cn ~]$ logrotate -m "/usr/bin/mail -s 'logrotate status' root" /etc/logrotate.conf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这个实例中,-m选项后面跟的是一个命令,这个命令会在每次轮换后执行,用于发送日志文件。这里的命令是/usr/bin/mail -s 'logrotate status' root,意思是发送一封主题为logrotate status的邮件给root用户。

实例9:使用-v选项显示详细信息

[linux@bashcommandnotfound.cn ~]$ logrotate -v /etc/logrotate.conf
  • 1

这个命令会在轮换日志文件时显示详细的信息,包括每个被轮换的日志文件的名称和轮换的结果。

Linux logrotate命令的注意事项

  • logrotate是一个非常强大的工具,但是也需要谨慎使用。在使用logrotate之前,一定要确保你理解了它的配置文件的含义。
  • 如果你在使用logrotate时遇到了bash: logrotate: command not found的错误,那么可能是你的系统中没有安装logrotate。你可以按照上面的方法进行安装。

Linux logrotate相关命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1018273
推荐阅读
相关标签
  

闽ICP备14008679号