手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

savecore(1M)

名称

savecore - 保存操作系统的故障转储

用法概要

/usr/bin/savecore [-Lvd] [-f dumpfile] [directory]

描述

savecore 实用程序保存内核的故障转储(假定生成了一个故障转储),并向关机日志写入重新引导消息。在每次系统引导时 dumpadm 服务会调用该实用程序。

可以通过 dumpadm(1M)savecore 配置为将故障转储数据保存为压缩格式或未压缩的格式。对于压缩格式,savecore 将故障转储数据保存在文件 directory/vmdump.N 中,其中路径名中的 N 将由一个数字替换,每次在 directory 中运行 savecore 时该数字都会递增 1。压缩文件可以使用 –f dumpfile 选项在单独的步骤中进行解压缩。对于未压缩的格式,savecore 将故障转储数据保存在文件 directory /vmcore.N 中,而将内核的名称列表保存在 directory/unix.N 中。

在对 vmcore-*.N 文件执行提取时,会对远程系统中的 vmdump-*.N 文件进行完整性验证。也可以在不执行提取的情况下使用 –V 选项单独执行该操作。如果验证失败,savecore 会将文件标记为不完整。

在写出故障转储之前,savecore 会从文件 directory/minfree 中读取一个数字。这是包含 directory 的文件系统上必须保留的空闲空间的最小千字节数。如果在保存故障转储后,包含 directory 的文件系统的空闲空间会小于 minfree 中指定的千字节数,则不会保存故障转储。如果 minfree 文件不存在,则 savecore 会假定 minfree 值为 1 兆字节。

savecore 实用程序还使用工具 LOG_AUTH 记录重新引导消息(请参见 syslog(3C))。如果系统是因为发生紧急情况而崩溃的,savecore 还会记录紧急情况字符串。

选项

支持以下选项:

–d

忽略转储标头有效标志。强制 savecore 保存故障转储,即使转储设备中存储的标头信息指示已保存该转储时也是如此。

–f dumpfile

从指定的文件而不是从系统的当前转储设备保存故障转储。如果指定了 directory/vmdump.N,则将文件解压缩到 vmcore.Nunix.N,其中 N 与压缩后的名称中的数字相同。

如果已通过 dd(1M) 命令将转储设备中存储的信息复制到盘上文件,此选项也会十分有用。

–L

保存实时运行的 Solaris 系统的故障转储,但不以任何方式实际重新引导或更改系统。此选项可强制 savecore 将系统的实时快照保存到转储设备,然后立即检索数据并将其写入指定目录中一组新的故障转储文件。只有在使用 dumpadm(1M) 将系统配置为使用专用转储设备后,才能执行实时系统故障转储。

savecore –L 不会暂停系统,因此在保存转储时内存的内容会继续发生更改。这意味着实时故障转储不是完全自我一致的。

–v

详细模式。显示来自 savecore 的详细错误消息。

操作数

支持下列操作数:

directory

将故障转储文件保存到指定目录。如果未指定 directory,则 savecore 会将故障转储文件保存到缺省的 savecore directory(通过 dumpadm(1M) 进行配置)。

文件

  • directory/vmcore.N

  • directory/unix.N

  • directory/bounds

  • directory/minfree

  • /var/crash/`uname -n`(缺省故障转储目录)

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

adb(1)mdb(1)svcs(1)dd(1M)dumpadm(1M)svcadm(1M)syslog(3C)attributes(5)smf(5)

附注

系统故障转储服务由服务管理工具 smf(5) 管理,其服务标识符为:

svc:/system/dumpadm:default

可以使用 svcadm(1M) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。可以使用 svcs(1) 命令来查询服务的状态。

如果转储设备也用作交换设备,则必须在引导后立即运行 savecore,以免包含故障转储的交换空间被当前运行的程序覆盖。

savecore 创建文件时,会附加后缀 .partial。文件完成后,会进行重命名,去掉此后缀。如果发现转储目录中的文件带有此后缀,则意味着 savecore 仍处于忙碌状态或者在完全写入文件之前被中断。如果是前一种情况,请使用 ps(1) 查找正在运行的 savecore 进程的 PID,然后等待该进程完成。如果是后一种情况,请删除未完成文件,然后运行 savecore –d 以重新创建该文件。