系统管理指南:高级管理

系统日志轮转

使用 root crontab 中的一个项内的 logadm 命令,可以轮转系统日志文件。不再使用 /usr/lib/newsyslog 脚本。

系统日志轮转在 /etc/logadm.conf 文件中定义。此文件包含用于 syslogd 等进程的日志轮转项。例如,/etc/logadm.conf 文件中的一个项指定,除非 /var/log/syslog 文件为空,否则该文件每周轮转一次。最新的 syslog 文件成为 syslog.0,下一个最新的文件成为 syslog.1,依此类推。会保留八个以前的 syslog 日志文件。

/etc/logadm.conf 文件还包含记录最后一次日志轮转发生时间的时间标记。

可以使用 logadm 命令来自定义系统日志,并可根据需要在 /etc/logadm.conf 文件中添加其他日志。

例如,要轮转 Apache 访问和错误日志,请使用以下命令:


# logadm -w /var/apache/logs/access_log -s 100m
# logadm -w /var/apache/logs/error_log -s 10m

在此示例中,Apache access_log 文件会在大小达到 100 MB 时进行轮转,以 .0.1 等作为后缀,并保留旧 access_log 文件的 10 个副本。error_log 会在大小达到 10 MB 时进行轮转,后缀和副本数与 access_log 文件相同。

用于上述 Apache 日志轮转示例的 /etc/logadm.conf 项与以下示例类似:


# cat /etc/logadm.conf
.
.
.
/var/apache/logs/error_log -s 10m
/var/apache/logs/access_log -s 100m

有关更多信息,请参见 logadm(1M)

可以超级用户身份或通过承担等效角色(具有日志管理权限)来使用 logadm 命令。通过基于角色的访问控制 (role-based access control, RBAC),您可以通过提供对 logadm 命令的访问来授予非超级用户维护日志文件的权限。

例如,可通过向 /etc/user_attr 文件添加以下项,授予用户 andy 使用 logadm 命令的权限:


andy::::profiles=Log Management

或者,也可以使用 Solaris 管理控制台来设置用于日志管理的角色。有关设置角色的更多信息,请参见《系统管理指南:安全性服务》中的“基于角色的访问控制(概述)”