登录旋转,在Linux系统上很正常的事情,防止任何特定的日志文件变得过大,又确保了系统的活动足够的细节仍然可以进行适当的系统监控和故障排除。
一组的日志文件中的最古老的被删除,其余日志文件被撞下来一个缺口,一个新文件取代它的位置作为当前的日志文件。此方法方便地自动化的,可以根据需要进行调整的细节。
日志文件手动旋转,可以通过使用的日志轮播命令。这篇文章提供了有关如何手动旋转日志文件,以及可能发生的细节。
这些例子在Ubuntu上这篇文章描述的工作和相关的Linux系统。其他系统可能使用不同的日志文件和配置文件名,但这个过程本身应该是非常相似的。
为什么旋转日志文件
在正常情况下,没有必要手动旋转日志文件。你的Linux系统应该已经被设置为每天转动一些日志(或者更少)和其他取决于它们的大小。如果您需要旋转一个日志文件,以腾出空间或正在进行的活动分离当前日志,它很容易做,但将取决于您的文件转规格。
一些背景知识
一些日志文件,一旦安装在Linux系统中设置了旋转。此外,当它们在系统上安装特定的应用程序添加自己的日志文件和旋转功能。为日志文件滚动配置文件可以在找到/etc/logrotate.d中目录。就如何实现这一过程的作品详情,可上早期的岗位。
在日志旋转过程中,当前日志通常获得像log.1一个名称,老log.1变得log.2等,而最老的日志文件,说log.7,从系统中删除。当然,名称及版本数的保留取决于旋转日志和旋转规范在这些文件/etc/logrotate.d中目录。对于一些日志文件,只有几个“代”被保留,而对于其他人,你可能会看到七个或更多。
通常的日志文件旋转后,您的系统日志文件可能如下所示。(注:“是系统日志”在线路末端评论添加说明旋转过程如何影响这些文件。)
$ ls -l命令在/ var / log / syslog的*
-rw-R ----- 1个系统日志ADM 128674年03月10 08:00的/ var / log / syslog的<==新-rw-R ----- 1个系统日志ADM 2405968 3月9日16时09分的/ var /日志/syslog.1 <== WAS系统日志-rw-R ----- 1个系统日志ADM 206451 03月09 00:00 /var/log/syslog.2.gz <== WAS syslog.1 -rw-R----- 1个系统日志ADM 216852 03月08 00:00 /var/log/syslog.3.gz <== WAS syslog.2.gz -rw-R ----- 1个系统日志ADM 212889 03月07日00:00 /无功/日志/ syslog.4.gz <== WAS syslog.3.gz -rw-R ----- 1个系统日志ADM 219106 03月06日00:00 /var/log/syslog.5.gz <== WASsyslog.4.gz -rw-R ----- 1个系统日志ADM 218596 3月5日00:00 /var/log/syslog.6.gz <== WAS syslog.5.gz -rw-R ----- 1个系统日志ADM 211074 03月04日00:00 /var/log/syslog.7.gz <== WAS syslog.6.gz
你可能不会感到惊讶地看到,所有但这系统的当前和最新的日志文件已被gzip压缩以节省空间。这背后的期望是,大多数系统管理员很可能会看着只有最近的文件,所以让其他人可用,但压缩是一个明智的举动。
手动日志循环
手动旋转系统日志文件,你可以使用日志轮播命令是这样的:
$ sudo的日志轮播-f /etc/logrotate.d/rsyslog
注意,这日志轮播命令使用-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,但它并不一定会创造新的系统日志文件。你可以这样做手工用这样的命令来设置文件,并确保正确的文件的所有权和权限:
$ sudo的触摸在/ var / log / syslog的$ sudo的日志CHOWN:ADM在/ var / log / syslog的
$ sudo的文件模式640的/ var / log / syslog的
或者,您可以将此行添加到您的/etc/logrotate.d/rsyslog文件做的工作适合你:
创建0640系统日志ADM
插入如下所示:
在/ var / log / syslog的
{
7旋转
日常
missingok
notifempty
创建0640系统日志ADM <==
delaycompress
压缩
postrotate
/ usr / lib目录/ rsyslog现在/ rsyslog现在,旋转
endscript
}
下面是手动日志旋转的例子wtmp文件日志文件记录用户登录。请注意,只有两个wtmp文件文件将保留在该系统上,由于在“旋转2”规范/etc/logrotate.d/wtmp。
之前:
$ LS -l的wtmp * -rw-R ----- 1根的utmp 1152年03月12 11点49分的wtmp -rw-R ----- 1周的utmp 768年03月11 17:04 wtmp.1
命令:
$ sudo的日志轮播-f /etc/logrotate.d/wtmp
后:
$ LS -l /无功/日志/ wtmp中* -rw-R ----- 1周的utmp 0年03月12十一时52分的/ var /日志/ wtmp中-rw-R ----- 1根的utmp 1152年03月12十一点49 /var/log/wtmp.1 -rw-R ----- 1根ADM 99726 02月21 7点46 /var/log/wtmp.report
请注意,每个日志的最近旋转中被捕获日志轮播的状态文件 - 的旋转是否手动执行,会自动展示:
$ grep的wtmp文件在/ var / lib中/日志轮播/状态 “的/ var /日志/ wtmp文件” 2020-3-12-11:52:57