日志信息是任何操作系统诊断任何运行应用程序问题的一个非常重要的组成部分,日志条目有助于找出问题的解决方案。Linux操作系统的大多数应用程序生成日志,系统管理员从日志条目中获取有关应用程序的所需信息。但是,日志条目有时会产生问题,因为条目的大小随着时间的推移而变大。因此,需要管理日志条目。
logrotate是Linux的一个命令行工具,用于管理日志条目。此工具有助于管理员对日志条目执行不同类型的任务,例如限制循环日志文件、压缩循环日志文件、删除不必要的日志文件、基于日志文件执行特定shell脚本等。本教程使用多个示例展示了"logorate"命令以不同方式管理日志文件的用法。
检查已安装的LogRotate版本
"logrotate"命令默认安装在Ubuntu的新版本中。运行以下命令检查"logrotate"命令的安装版本:
$logrotate——版本
默认情况下,不同应用程序的日志条目存储在"/var/log"文件夹中。如果检查文件夹的内容,将显示以下类似内容。
$ls/var/log
设置"Logrotate"配置
设定值 | 目的 |
每日/每周/每月/每年 | 它定义了旋转日志的持续时间。 |
旋转数 | 它定义了删除旧日志文件之前将保留的文件数。 |
压缩 | 用于对日志文件进行压缩。 |
压缩机 | 它用于设置“compress”命令。gzip是默认命令。 |
未压缩 | 用于设置“解压缩”命令。GUNZIP是默认命令。 |
延迟压缩 | 用于延迟日志文件的压缩过程。 |
通知空 | 用于不旋转空文件。 |
米辛格 | 如果已设置,则不会为丢失的日志文件生成错误。 |
大小 | 它用于设置开始循环日志文件的限制。 |
日期文本 | 它用于添加日期值作为旋转文件的后缀。 |
复制截断 | 它用于创建原始文件的副本。 |
预旋转 | 它用于在循环日志文件之前运行脚本。 |
后旋 | 它用于在循环日志文件后运行脚本。 |
创建 | 它用于创建具有根权限的日志文件。 |
语法:
"logrotate"命令的语法如下所示:
logrotate [OPTION] config_file_path
不同类型的选项可以用于不同的目的与"logrotate"命令。
对数旋转选项
下面介绍了"logrotate"命令的一些有用选项:
选择权 | 目的 |
---|---|
—f,—力 | 它用于在需要时进行有力的旋转。 |
—d,—调试 | 它用于在循环期间启用调试模式。 |
—m—邮件 | 它用于在轮换期间发送电子邮件。 |
—s,—state | 它用于替代状态文件。 |
—使用 | 它用于打印使用信息。 |
—?,—救命 | 它用于打印帮助信息。 |
—v,—verbose | 它用于在详细模式下打印。 |
日志轮换配置文件
主logrotate配置文件位于“/etc/logrotate.conf”位置。运行以下命令以在Nano编辑器中打开该文件:
$nano/etc/logrotate. conf
“logrotate”命令的默认设置显示在“logrotate.conf”文件中。文件中使用“Include”指令来检索位于“/etc/logrotate.d”目录中的配置。
示例1:创建简单的Logrotate配置文件
使用示例日志数据创建一个名为"/var/log/test.log"的示例日志文件。运行以下命令打开nano编辑器,在"/etc/tmp"文件夹位置创建一个新的"logrotate.conf"文件。如果以前没有创建"/tmp"文件夹,请使用根权限创建该文件夹。
$nano/etc/tmp/logrotate. conf
将以下内容添加到"/var/log/test.log"文件的文件中。根据设置,如果文件大小超过5K,则"test.log"文件将每日轮换:
/var/log/est.log{
《每日新闻》
尺寸5K
苏根ADM
}
运行以下命令以检查日志文件的大小:
$ls-L/var/log/test.log
创建配置文件后运行"logrotate"命令。
$sudo logrotate/etc/tmp/logrotate.conf
在执行"logrotate"命令后,再次运行以下命令以检查日志文件的大小:
$ls-L/var/log/test.log
“test.log”文件的大小为1K+。因此,不会根据配置设置进行旋转。
在“/etc/tmp/logrotate.conf”文件中将SIZE值更改为1K,并再次运行“ls”命令以检查“/var/log/est.log”的文件大小。根据输出,由于超过大小限制,日志文件将被轮换和删除。
示例2:使用对数旋转复制截断
使用以下设置创建或修改"/etc/tmp/logrotate. conf"文件,以显示copytruncate的使用。根据new设置,logrotate通过将原始文件大小设为零来创建原始文件的副本。
/var/log/est.log{
轮换5次
大小为1000
复制截断
苏根ADM
}
运行以下命令检查"test.log"文件的大小:
$ls-L/var/log/test.log
创建配置文件后运行"logrotate"命令。
$sudo logrotate/etc/tmp/logrotate.conf
在执行"logrotate"命令后,再次运行以下命令以检查"test.log"文件的大小:
$ls-L/var/log/test.log
在为copytruncate设置执行"logrotate"命令后,原始文件大小变为0。
实施例3:使用Logrotate压缩机
使用以下设置创建或修改"/etc/tmp/logrotate. conf"文件,以显示压缩的使用。根据新的设置,logrotate创建一个原始文件的压缩文件.
/var/log/est.log{
轮换5次
大小为1000
压缩
创建770根ADM
}
运行以下命令检查"/var/log"的文件和文件夹列表:
$ls/var/log/
创建配置文件后运行"logrotate"命令。
$sudo logrotate/etc/tmp/logrotate.conf
再次运行以下命令以检查"/var/log"的文件和文件夹列表:
$ls/var/log/
"test.log"文件的压缩文件创建为名称"test.log.1.gz",并删除原始文件。
示例4:使用Logrotate Dateext
使用以下设置创建或修改"/etc/tmp/logrotate.conf"文件,以显示dateext的使用。根据新的设置,logrotate创建一个原始文件的压缩文件,并使用日期值。
var/log/test.log {
苏根ADM
轮换5次
大小为1000
压缩
创建770根ADM
日期扩展
}
创建配置文件后运行"logrotate"命令。
$sudo logrotate/etc/tmp/logrotate.conf
运行以下命令检查"/var/log"的文件和文件夹列表:
$ls—l/var/log
将创建名为“test.log.20240129.gz”的“test.log”文件的压缩文件,并删除原始文件。
示例5:使用对数旋转最大值
使用以下设置创建或修改"/etc/tmp/logrotate.conf"文件,以显示maxage的使用。根据设置,如果日志文件大小超过1K,logrotate会保留5个日志条目。
/var/log/est.log{
苏根ADM
轮换5次
大小为1000
压缩
最大值1
}
运行以下“logrotate”命令,将输出存储在另一个名为“out.log”的日志文件中:
$sudo logrotate—s =/var/log/out.log/etc/tmp/logrotate. conf
根据下面的输出,在执行"logrotate"命令之后创建"out.log"文件:
示例6:使用Logrotate Missingok
使用以下设置创建或修改"/etc/tmp/logrotate.conf"文件。这里,"testfile.log"日志文件在"/var/log"文件夹中不存在。
/var/log/testfile.log {
苏根ADM
轮换5次
大小为1000
压缩
}
执行"logrotate"命令后会打印一条错误消息。
在logrotate配置文件中添加“missingok”设置,然后再次运行“logrotate”命令。不会为丢失的日志文件打印任何错误。
示例7:使用Logrotate预旋转
用下面的脚本创建一个名为"test.sh"的Bash文件,用于打印一条简单的消息。在本logrotate示例中,该文件用于显示logrotate配置文件中预旋转的用法。
test.sh
#!/bin/bash
echo "logroate例子.”
创建文件后,运行以下命令为所有用户设置此文件的执行权限:
$chmod a+x/home/Fahmida/est.sh
现在,使用以下设置创建或修改"/etc/tmp/logrotate.conf"文件。根据设置,如果日志文件的大小超过1K,logrotate会保留5个日志条目,并且在循环之前执行"test.sh"文件。
/var/log/est.log{
苏根ADM
轮换5次
大小为1000
预旋转
/home/fahmida/test.sh
尾文
}
在执行"logrotate"命令后,"test.sh"文件的输出显示:
结论
本教程使用多个示例展示了"logrotate"命令的各种用法,这些示例将帮助Linux用户了解该命令的用法并正确管理日志文件。