如何在Linux上手动轮换日志文件足够的详细信息用于必要的系统监控和故障排除。一组日志文件中最早的日志文件被删除后,剩余的日志文件降级一个,更新的文件被替换成为当前日志文件。此过程很容易实现自动化,并且可以根据需要调整细节。您可以使用logrotate命令手动轮换日志文件。本文详细介绍了如何手动轮换日志文件以及预期结果。本文中描述的示例适用于Ubuntu和相关的Linux系统。其他系统可能使用不同的日志文件和配置文件名,但过程本身应该是相似的。为什么轮换日志文件?一般情况下,不需要手动轮转日志文件。您的Linux系统应该已经设置为每天(或更频繁)轮换一些日志,而其他日志则取决于日志大小。如果您需要轮换日志文件以释放空间,或将当前日志与正在进行的活动分开,这很容易做到,但取决于您的文件轮换规范。背景知识一旦安装了Linux系统,就会设置许多日志文件以进行轮换。此外,某些应用程序在系统上安装时会添加自己的日志文件和轮换规范。日志文件轮换的配置文件可以在/etc/logrotate.d目录中找到。在日志轮转过程中,当前日志通常会得到类似log.1的名称,旧的log.1变为log.2,依此类推,而最旧的日志文件(例如log.7)将从系统中删除。当然,保留的名称和版本数取决于正在轮换的日志以及/etc/logrotate.d目录中这些文件的轮换规范。对于某些日志文件,只保留了几个“代”,而对于其他日志文件,您可能会看到七代或更多代。在通常的日志文件轮换之后,系统日志文件可能如下所示。(注意:在行末添加“wassyslog”注释以说明轮换过程如何影响文件。)$ls-l/var/log/syslog*-rw-r-----1syslogadm128674Mar1008:00/var/log/syslog<==new-rw-r-----1syslogadm2405968Mar916:09/var/log/syslog.1<==wassyslog-rw-r-----1syslogadm206451Mar900:00/var/log/syslog.2.gz<==wassyslog.1-rw-r-----1syslogadm216852Mar800:00/var/log/syslog.3.gz<==wassyslog.2.gz-rw-r-----1syslogadm212889Mar700:00/var/log/syslog.4.gz<==wassyslog.3.gz-rw-r-----1syslogadm219106Mar600:00/var/log/syslog.5.gz<==wassyslog.4.gz-rw-r-----1syslogadm218596Mar500:00/var/log/syslog.6.gz<==wassyslog.5.gz-rw-r-----1syslogadm211074Mar400:00/var/log/syslog.7.gz<==wassyslog.6.gz除了这个系统上的当前和最新日志文件之外的所有它应该来压缩日志文件以节省空间也就不足为奇了。大多数系统管理员可能只会查看最新的文件,因此保留其他文件可用但压缩是明智的。手动旋转日志要手动旋转syslog文件,请使用logrotate命令,如下所示:$sudologrotate-f/etc/logrotate.d/rsyslog请注意,logrotate命令使用-f(强制旋转)选项。轮换配置详细信息是从/etc/logrotate.d/rsyslog目录中的指定文件中提取的。然后该命令将遵循典型的过程-删除syslog.7.gz,将syslog.6.gz移至syslog.7.gz,将syslog.5.gz移至syslog.6.gz,将syslog.4.gz移至syslog.5.gz、syslog.3.gz移动到syslog.4.gz,而syslog.2.gz移动到syslog.1.gz,但不一定创建新的syslog文件。您可以使用这样的命令手动执行此操作以设置文件并确保正确的文件所有权和权限:$sudotouch/var/log/syslog$sudochownsyslog:adm/var/log/syslog$sudochmod640/var/log/syslog或者,您可以将此行添加到etc/logrotate.d/rsyslog文件来为您完成这项工作:create0640syslogadm插入如下内容:rsyslog-rotateendscript}这是对记录用户登录的wtmp日志文件执行手动日志轮换的示例.注意:由于/etc/logrotate.d/wtmp中的“rotate2”规范,此系统上仅保留两个wtmp文件。之前:$ls-lwtmp*-rw-r-----1rootutmp1152Mar1211:49wtmp-rw-r-----1rootutmp768Mar1117:04wtmp.1命令:$sudologrotate-f/etc/logrotate.d/wtmp之后:$ls-l/var/log/wtmp*-rw-r-----1rootutmp0Mar1211:52/var/log/wtmp-rw-r-----1rootutmp1152Mar1211:49/var/log/wtmp.1-rw-r-----1rootadm99726Feb2107:46/var/log/wtmp.report注意:每个日志的最新轮换记录在logrotate的状态文件中——轮换是手动还是自动执行:$grepwtmp/var/lib/logrotate/status"/var/log/wtmp"2020-3-12-11:52:57原标题:ManuallyrotatinglogfilesonLinux,作者:SandraHenry-Stocker原译者及出处为.com】
