Linux,有几种方法可以得到各种崩溃产生的信息
1.核心转储
核心转储通常用于调试应用程序错误当一些应用程序异常崩溃时,可以打开系统的核心转储功能,获取程序崩溃时的内存信息,可以用来分析崩溃原因:
在/etc/profile中添加(或修改)一个:
尤利姆-c 0
run:sysctl-w ' kernel . core _ name _ format=/core dump/% n . core '
这个命令意味着核心文件放在/coredump目录中,文件名是进程名核心
2.磁盘转储
diskdump工具提供了在不使用网络的情况下在单台机器上创建和收集vmcore(内核转储)的能力当内核本身崩溃时,当前的内存和CPU状态以及相关信息将被保存到支持diskdump的磁盘上的保留分区中在下一次重启时,当系统重启时,diskdump的初始化脚本将从保留分区中读取保存的信息,并创建一个vcore文件,然后该文件将再次存储在/var/crash/目录中,文件名为127.0.0.1-
以下是在HP SCSI设备上配置diskdump的过程如果不是HP SCSI设备(即设备名为/dev/sdX),则无需执行第三步或第四步但是你需要在第一步之前执行命令:modprobe
磁盘转储
第一步:编辑/etc/sysconfig/diskdump文件,填写空白分区的设备名,然后保存并退出,例如:
设备=/dev/cciss/c0d0p2
步骤2:初始化倾卸设备
#服务磁盘转储初始格式
警告:该分区的所有数据都将丢失
步骤3:用cciss_dump模块替换当前的cciss模块:
在/etc/modprobe.conf中找到以下行:
别名scsi _主机适配器cciss
修改为:
别名scsi _主机适配器cciss_dump
添加另一行:
选项cciss_dump dump_drive=1
注意:假设在diskdump文件中配置了/dev/cciss/c0d[#a]p[#b],请将其设置为:options cciss _ dump dump _ drive=[# a]
步骤4:重建initrd文件:
# mv/boot/initrd-` uname-r `. img/boot/initrd-` uname-r ` . img . old
# mkinitrd/boot/initrd-` uname-r ' img ` uname-r '
步骤5:将diskdump服务设置为能够引导并自行启动:
# chkconfig磁盘转储打开
3.网络转储
如果您使用红旗DC版本DC4.0或3.0系统,您不能支持diskdump您可以使用netdump输出vmcore但是Netdump至少需要一台服务器和任意数量的客户机服务器用于在客户端崩溃时接收信息客户端是一台经常崩溃的机器
(1)服务器配置:
(1).检查是否安装了netdump服务器:
rpm -q网络转储服务器
如果没有安装,请在CD-ROM RedFlag/RPMS/目录中找到以netdump-server开头的软件包,并执行命令:
rpm-IVH net dump-server-x . x . x . rpm(x是版本号)
进行安装
(2).安装服务器软件包后,使用以下命令:
passwd网络转储
更改用户的密码
(3).打开服务:
chkconfig网络转储-服务器打开
(4).运行服务器:
服务网络转储-服务器启动
(2)客户端配置:
(1).验证客户端是否已安装
rpm -q网络转储
如果没有安装,请在光盘的RedFlag/RPMS/目录中找到以netdum开头的软件包,并执行以下命令:
Rpm -ivh netdump-x.x.x.rpm (x是版本号)
安装
(2).编辑文件/etc/sysconfig/netdump,并添加以下行:
DEV=eth0
NETDUMPADDR=172.16.81.182
NETDUMPMACADDR=00:0C:29:79:F4:E0
12.16.81.182指的是网络转储服务器地址
(3).运行以下命令,并在出现提示时输入密码:
服务网络转储传播
(4).打开客户端:
chkconfig网络转储打开
(5).运行客户端:
服务网络转储启动
(6)测试
要测试netdump的配置是否正确,请在netdump客户端上执行以下操作:
cp /usr/share/doc/netdump-xxxxx
x/crash.c。
gcc-d kernel-d module-I/lib/modules/$(uname-r)/build/include-c crash . c
insmod。/crash.o
这将导致系统崩溃,您将在netdump服务器的/var/crash/client IP/目录中看到一个核心转储。当客户端将数据转储到服务器时,您会看到一个名为“vmcore-incomplete”的文件。转储完成后,该文件将被重命名为“vmcore”。vmcore文件的大小会有所不同,可能会达到几个GB。在内存为512M的系统上,上述测试将产生大约510M的vmcore文件。