Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1284437
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-09 16:06:10


系统日志轮转
第22 章• 管理系统消息391
# 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 管理控制台来设置用于日志管理的角色。有关设置角色的更多信
息,请参见《System Administration Guide: Security Services》中的“Role-Based Access Control
(Overview)”。
自定义系统消息日志
通过修改/etc/syslog.conf 文件可以捕获各个系统进程生成的其他错误消息。缺省情况
下,/etc/syslog.conf 文件会将许多系统进程消息定向到/var/adm/messages 文件中。崩溃
和引导消息也存储在这些文件中。要查看/var/adm 消息,请参见第390 页中的“如何查看
系统消息”。
/etc/syslog.conf 文件有两个通过制表符分隔的列:
facility.level ... action
facility.level 消息或情况的工具或系统源。可能是由逗号分隔的工具列表。表22–1 中列
出了工具值。level,表示所记录情况的严重程度或优先级。表22–2 中列出了
优先级别。
如果同一工具的两个项用于不同优先级,则不要将这两个项放在同一行中。
在syslog 文件中放置优先级表示将记录该优先级或更高优先级的所有消息,
最后一条消息优先。对于给定的工具和级别,syslogd 将匹配该级别以及所
有更高级别的所有消息。
action 操作字段表示将消息转发到的位置。
以下示例显示缺省/etc/syslog.conf 文件中的样例行。
自定义系统消息日志
392 系统管理指南:高级管理• 2006 年7 月
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert ‘root, operator’
user.emerg *
这意味着将自动记录以下用户消息:
 用户错误列显到控制台并记录到/var/adm/messages 文件中。
 将需要立即操作的用户消息(alert) 发送给超级用户和操作员用户。
 将用户紧急消息发送给各用户。
注– 如果在/etc/syslog.conf 文件中多次指定一个日志目标,则将各项分别放置在不同的行
中可能会导致消息的记录顺序混乱。请注意,可在一个行项中指定多个选择器,每个选择
器之间用分号分隔。
下表中显示了最常见的错误情况源。表22–2 按严重程度显示最常见的优先级。
表22–1 syslog.conf 消息的源工具
源说明
kern 内核
auth 验证
daemon 所有守护进程
mail 邮件系统
lp 假脱机系统
user 用户进程
注– 对于可在/etc/syslog.conf 文件中激活的syslog 工具数没有限制。
表22–2 syslog.conf 消息的优先级别
优先级说明
emerg 系统紧急情况
alert 需要立即更正的错误
crit 严重错误
自定义系统消息日志
第22 章• 管理系统消息393
表22–2 syslog.conf 消息的优先级别(续)
优先级说明
err 其他错误
info 提示性消息
debug 用于调试的输出
none 此设置不记录输出
 如何自定义系统消息日志
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC (Task Map)”。
编辑/etc/syslog.conf 文件,根据syslog.conf(4) 中介绍的语法添加或更改消息源、优先级
和消息位置。
退出文件,保存更改。
自定义系统消息日志
此样例/etc/syslog.conf user.emerg 工具可向超级用户和各用户发送用户紧急消息。
user.emerg ‘root, *’
启用远程控制台消息传送
以下新增控制台功能可以提高您对远程系统进行故障排除的能力:
 利用consadm 命令,您可以选择串行设备作为辅助(或远程)控制台。使用consadm 命
令,系统管理员可以配置一个或多个串行端口,以便在系统在运行级别之间转换时显示
重定向的控制台消息并托管sulogin 会话。借助此功能,您可用调制解调器拨入并连接
到串行端口,以监视控制台消息并参与init 状态转换。(有关更多信息,请参见
sulogin(1M) 和后面的逐步过程。)
使用配置为辅助控制台的端口登录系统时,它主要用作输出设备,其中显示的信息也在
缺省控制台中显示。如果引导脚本或其他应用程序从缺省控制台中读取内容或向其中写
入内容,则写入输出将在所有辅助控制台上显示,但输入只从缺省控制台中读取。(有
关在交互式登录会话期间使用consadm 命令的更多信息,请参见第395 页中的“在交互
式登录会话期间使用consadm 命令”。)
 控制台输出包括内核和写入新的伪设备/dev/sysmsg 的syslog 消息。此外,rc 脚本启动
消息也将写入/dev/msglog。以前,所有这些消息都写入/dev/console。
1
2
3
示例22–2
启用远程控制台消息传送
394 系统管理指南:高级管理• 2006 年7 月
如果希望看到显示在辅助控制台中的脚本消息,那么需要把将控制台输出定向到
/dev/console 的脚本更改为/dev/msglog。如果要将消息重定向到辅助设备,应将引用
/dev/console 的程序显式修改为使用syslog() 或strlog()。
 consadm 命令运行守护进程来监视辅助控制台设备。指定为辅助控制台并且已断开、挂
起或失去载体的任何显示设备都将从辅助控制台设备列表中删除,并且不再处于活动状
态。启用一个或多个辅助控制台不会禁用缺省控制台上的消息显示,消息将继续在
/dev/console 中显示。
在运行级别转换期间使用辅助控制台消息传递
在运行级别转换期间使用辅助控制台消息传递时,请记住以下几点:
 如果在系统引导时运行的rc 脚本期望用户输入,则输入不能来自辅助控制台。输入必
须来自缺省控制台。
 由init 调用以用于在运行级别之间转换时提示输入超级用户口令的sulogin 程序已被修
改,除了缺省控制台设备之外,还可以向每个辅助设备发送超级用户口令提示。
 当系统处于单用户模式并且使用consadm 命令启用一个或多个辅助控制台时,将在第一
个设备上运行控制台登录会话,以便为sulogin 提示提供正确的超级用户口令。从控制
台设备收到正确口令时,sulogin 将禁用来自所有其他控制台设备的输入。
 如果其中一个控制台承担了单用户特权,将在缺省控制台和其他辅助控制台上显示一条
消息。此消息指出已通过接受正确的超级用户密码而成为控制台的设备。如果运行单用
户shell 的辅助控制台中丢失载体,则会执行以下两种操作之一:
 如果辅助控制台表现为一个处于运行级别1 的系统,则系统会继续到缺省运行级
别。
 如果辅助控制台表现为一个处于运行级别S 的系统,则系统会显示ENTER RUN LEVEL
(0-6, s or S):从其中通过shell 输入init s 或shutdown 命令的设备中的消息。如果
该设备中也没有任何载体,则必须重新建立载体并输入正确的运行级别。init 或
shutdown 命令不再重新显示运行级别提示。
 如果使用串行端口登录系统,并发出init 或shutdown 命令以转换到其他运行级别,则
无论此设备是否为辅助控制台,登录会话都将丢失。此情况与没有辅助控制台功能的
Solaris 发行版相同。
 一旦使用consadm 命令将设备选作辅助控制台,则在重新引导系统或取消选中辅助控制
台之前,该设备将一直保持为辅助控制台。但是,consadm 命令有一个选项可在多次系
统重新引导期间仍将设备设置为辅助控制台。(有关逐步说明,请参见以下过程。)
在交互式登录会话期间使用consadm 命令
如果要通过使用与串行端口连接的终端登录系统,再使用consadm 命令查看终端的控制台消
息的方式来运行交互式登录会话,请注意以下行为。
 如果在辅助控制台处于活动状态时将终端用于交互式登录会话,则会向/dev/sysmsg 或
/dev/msglog 设备发送控制台消息。
启用远程控制台消息传送
第22 章• 管理系统消息395
 在终端发出命令时,输入将转到交互式会话而非缺省控制台(/dev/console)。
 如果运行init 命令更改运行级别,远程控制台软件将中止交互式会话并运行sulogin 程
序。此时,只接受来自终端的输入,并将其视为来自控制台设备的输入。这样您便可以
如第395 页中的“在运行级别转换期间使用辅助控制台消息传递”中所述为sulogin 程
序输入口令。
然后,如果您在(辅助)终端中输入正确密码,辅助控制台将运行交互式sulogin 会
话,锁定缺省控制台和任何竞争性的辅助控制台。这意味着,终端基本上可用作系统控
制台。
 此时,您可以更改到运行级别3 或转到其他运行级别。如果更改运行级别,sulogin 将
在所有控制台设备中再次运行。如果您退出或指定系统应达到运行级别3,则所有辅助
控制台都将丧失提供输入的能力。它们将恢复为控制台消息的显示设备。
随着系统的提升,您必须为缺省控制台设备中的rc 脚本提供信息。在系统恢复启动
后,login 程序将在串行端口中运行,您可以重新登录到其他交互式会话中。如果已将
该设备指定为辅助控制台,您将继续在终端中获得控制台消息,但来自该终端的所有输
入都将转至交互式会话。
 如何启用辅助(远程)控制台
在您使用consadm 命令添加辅助控制台之前,consadm 守护进程不会开始监视端口。作为一
种安全功能,在载体脱机或取消选择辅助控制台设备之前,控制台消息只能重定向。这意
味着必须在端口中建立载体,才能成功使用consadm 命令。
有关建立辅助控制台的更多信息,请参见consadm(1m) 手册页。
以超级用户身份登录系统。
启用辅助控制台。
# consadm -a devicename
验证当前连接是否为辅助控制台。
# consadm
启用辅助(远程)控制台
# consadm -a /dev/term/a
# consadm
/dev/term/a
1
2
3
示例22–3
启用远程控制台消息传送
396 系统管理指南:高级管理• 2006 年7 月
 如何显示辅助控制台的列表
以超级用户身份登录系统。
选择以下步骤之一:
a. 显示辅助控制台的列表。
# consadm
/dev/term/a
b. 显示持久性辅助控制台的列表。
# consadm -p
/dev/term/b
 如何在系统重新引导期间启用辅助(远程)控制台
以超级用户身份登录系统。
在系统重新引导期间启用辅助控制台。
# consadm -a -p devicename
这将会向持久性辅助控制台列表中添加设备。
验证设备是否已添加至持久性辅助控制台的列表中。
# consadm
在系统重新引导期间启用辅助(远程)控制台
# consadm -a -p /dev/term/a
# consadm
/dev/term/a
1
2
1
2
3
示例22–4
启用远程控制台消息传送
第22 章• 管理系统消息397
 如何禁用辅助(远程)控制台
以超级用户身份登录系统。
选择以下步骤之一:
a. 禁用辅助控制台。
# consadm -d devicename

b. 禁用辅助控制台并从持久性辅助控制台列表中将其删除。
# consadm -p -d devicename
验证是否已禁用辅助控制台。
# consadm
禁用辅助(远程)控制台
# consadm -d /dev/term/a
# consadm
1
2
3
示例22–5
启用远程控制台消息传送
398 系统管理指南:高级管理• 2006 年7 月
管理核心转储文件(任务)
本章介绍如何使用coreadm 命令管理核心转储文件。
有关与管理核心转储文件相关的过程的信息,请参见第399 页中的“管理核心转储文件
(任务图)”。
管理核心转储文件(任务图)
任务说明参考
1. 显示当前的核心转储配

使用coreadm 命令显示当前的核心转储配
置。
第402 页中的“如何显示当
前的核心转储配置”
2. 修改核心转储配置修改核心转储配置,以执行下列操作之
一:
设置核心转储文件名称模式。
启用每进程核心转储文件路径。
启用全局核心转储文件路径。
第403 页中的“如何设置核
心转储文件名称模式”
第403 页中的“如何启用每
进程核心转储文件路径”
第403 页中的“如何启用全
局核心转储文件路径”
3. 检查核心转储文件使用proc 工具查看核心转储文件。第404 页中的“检查核心转
储文件”
23 第2 3 章
399
管理核心转储文件概述
核心转储文件是在异常终止进程或应用程序时生成的。使用coreadm 命令可以管理核心转储
文件。
例如,可以使用coreadm 命令来配置系统,以便将所有进程核心转储文件都放在一个系统目
录中。这意味着,当Solaris 进程或守护进程异常终止时,可通过检查特定目录中的核心转
储文件来跟踪问题。
配置核心转储文件路径
可以独立启用或禁用的两个新的可配置core 文件路径是:
 每进程核心转储文件路径,缺省为core 并在缺省情况下启用。如果启用,则每进程核心
转储文件路径会导致在进程异常终止时生成core 文件。每进程路径由新进程从其父进程
处继承。
生成每进程核心转储文件时,该文件由具有属主读/写权限的进程属主拥有。只有属主
用户可以查看此文件。
 全局核心转储文件路径,缺省为core 并在缺省情况下禁用。如果启用,则会使用全局核
心转储文件路径生成内容与每进程核心转储文件相同的附加核心转储文件。
生成全局核心转储文件时,该文件只属于具有超级用户读/写权限的超级用户所有。非
特权用户不能查看此文件。
当进程异常终止时,缺省情况下会在当前目录中生成一个核心转储文件。如果启用了全局
核心转储文件,则每个异常终止的进程可能会生成两个文件,一个在当前工作目录中,另
一个在全局核心转储文件位置。
缺省情况下,setuid 进程不使用全局或每进程路径生成核心转储文件。
扩展的核心转储文件名
如果启用了全局核心转储文件目录,则可使用下表中介绍的变量来区分core 文件。
变量名变量定义
%d 可执行文件目录名,最多包含MAXPATHLEN 个字符
%f 可执行文件名,最多包含MAXCOMLEN 个字符
%g 有效组ID
%m 机器名(uname -m)
%n 系统节点名(uname -n)
管理核心转储文件概述
400 系统管理指南:高级管理• 2006 年7 月
变量名变量定义
%p 进程ID
%t 时间的十进制值(2)
%u 有效用户ID
%z 在其中执行进程的区域的名称(zonename)
%% 字面值%
例如,如果全局核心转储文件路径设置为:
/var/core/core.%f.%p
并且PID 为12345 的sendmail 进程异常终止,则会生成以下core 文件:
/var/core/core.sendmail.12345
设置核心转储文件名称模式
可以按全局、区域或进程设置核心转储文件名称模式。此外,还可以设置在系统重新引导
时持续存在的每进程缺省值。
例如,以下coreadm 命令将设置缺省的每进程核心转储文件模式。此设置适用于未显式覆盖
缺省核心转储文件模式的所有进程。此设置在系统重新引导时持续存在。
# coreadm -i /var/core/core.%f.%p
全局核心转储值存储在/etc/coreadm.conf 文件中,这意味着在系统重新引导期间将保存这
些设置。
此coreadm 命令可为任何进程设置每进程核心转储文件名称模式:
$ coreadm -p /var/core/core.%f.%p $$
$$ 符号表示当前正在运行的Shell 的进程ID 的占位符。所有子进程都会继承每进程核心转
储文件名称模式。
一旦设置了全局或每进程核心转储文件模式,就必须使用coreadm -e 命令启用该模式。有
关更多信息,请参见以下过程。
通过在$HOME/.profile 或.login 文件中放置该命令,便可为用户登录会话期间运行的所有
进程设置核心转储文件名称模式。
 
 
 

以上文章转自于 : http://developers.sun.com.cn/
阅读(430) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~