kdump 是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。除了执行既定的kdump任务,它还允许自定义执行脚本,下面介绍一下如何在新内核上执行自定义的操作:

  1. 安装kdump环境

  • yum install kexec-tools

开启服务

  • chkconfig kdump on

  • service kdump start

配置启动项

  • 修改/boot/grub/menu.lst中的 "crashkernel=auto”为 “crashkernel=128M”

  • 重启机器

触发崩溃

  • echo c > /proc/sysrq-trigger

  • 【此时正在运行的内核崩溃,kdump自动切换到新内核,在新内核里执行保存崩溃内核信息的动作】

自定义操作

  • 通过配置/etc/kdump.conf可以控制kdump在保存崩溃内核之前和之后进行的操作kdump_pre和kdump_post

    • extra_bins /bin/sh      【切记把这个加上,否则无法执行脚本】

    • kdump_pre /var/crash/kdump_pre.sh

    • kdump_post /var/crash/kdump_post.sh

高级知识

  • 新内核的环境在/boot下,比如initrd-2.6.32-358.el6.x86_64kdump.img

  • 当旧内核崩溃时,kdump会解压缩这个img文件并执行,解压缩方式为

    • mv initrd-2.6.32-358.el6.x86_64kdump.img initrd-2.6.32-358.el6.x86_64kdump.img.gz

    • gunzip initrd-2.6.32-358.el6.x86_64kdump.img.gz

    • cpio -idmv < initrd-2.6.32-358.el6.x86_64kdump.img

  • img文件内包括新内核需要的所有文件,平时使用的cp、mv等都链接到busybox

    • [root@new-dev-2 bin]# ll cp mv      
      lrwxrwxrwx. 1 root root 7 Sep 17 12:13 cp -> busybox      
      lrwxrwxrwx. 1 root root 7 Sep 17 12:13 mv -> busybox

    • 如果希望独立的cp和mv,可以通过修改kdump.conf实现:extra_bins /bin/cp;  extra_bins /bin/mv

转载:http://itindex.net/detail/45696-yuanbor-centos-6.4

转载于:https://blog.51cto.com/abadem/1582979

CentOS 6.4下操作kdump执行过程相关推荐

  1. centos 安装mysql_Centos 下mysql数据库完整安装过程

    1. 检查系统自带的Mysql,并卸载自带的版本 [root@iZ2366ycl7sZ config]# yum list installed |grep mysql mysql.x86_64 5.1 ...

  2. linux如何调试elf程序,Linux下ELF的执行过程

    我们考虑从shell中执行一个Linux应用程序,并且该应用程序链接的是动态库,而不是静态库 1. 加载二进制文件 shell会执行evecve()进行系统调用,如下所示 execve() -> ...

  3. Linux下C语言执行过程(预处理,编译,汇编,链接,执行)

    1.C语言的执行过程包括5个步骤:分别是:预处理,编译,汇编,链接,执行 第一步:编写C源代码,截图如下: 2.预处理,命令为:gcc -E variable.c -o variable.i(这步的作 ...

  4. linux命令执行的通过程,Linux下shell命令执行过程简介

    浅析linux 下shell命令执行和守护进程 执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 [root@banking tmp]# cd /tmp [root@banki ...

  5. linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  6. 在动作观察,运动想象和站立和坐姿执行过程中解码脑电节律

    事件相关去同步化与同步化(ERD/S)和运动相关皮质电位(MRCP)在下肢康复的脑机接口(BCI)中,特别是在站立和坐姿中,起着重要的作用.然而,人们对站立和坐着的大脑皮层活动的差异知之甚少,尤其是大 ...

  7. ThinkPHP框架2.1版本单步执行过程

    本教程来好好的了解下TP的执行过程 本次教程以单步执行为主.了解下TP的运行过程,大家可以体验下TP的强大..现在开始吧 THINKPHP2.1非常的强大,推荐大家使用,TP是PHP框架里面写的较清晰 ...

  8. CentOS下DB2数据库安装过程详解

    这篇文章主要介绍了CentOS下DB2数据库安装过程详解,本文步骤详细,操作的命令也比较全 安装前请查看DB2版本和许可证说明来增加了解,先弄明白改安装什么版本,这里我用的是最新的Express-C版 ...

  9. redis命令_Redis 命令执行过程(下)

    点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! 在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命 ...

最新文章

  1. 详细通俗重点CRF层讲解
  2. 2012是团购移动电商年
  3. 小甲鱼c++学习视频之运算符重载
  4. Android笔记之模拟器
  5. MSP432 库函数实现 PID 电机调角度、调速
  6. mysql 函数定义常量_php如何定义一个自定义常量
  7. mysql导入超大sql文件时mysql服务重启
  8. docker pipework
  9. phpMyAdmin创建数据库无权限解决方案
  10. 循环buffer的实现_Go语言源码阅读之bytes.Buffer
  11. centos7安装mysql客户端
  12. 用mysql做宠物商店项目_使用Java实现数据库编程 项目(宠物商店)
  13. android 显示系统时间,Android 实时获取当前时间并显示
  14. 卸载驱动、安装CUDA及CUDNN
  15. php高德行政区边界,请教 高德地图绘制行政区划边界
  16. 试简述smtp通信的三个阶段的过程_POP3_SMTP_IMAP初步介绍
  17. 2014世界10大DRAM公司
  18. Qt creator开发的C++应用程序运行崩溃,异常代码0xc0000409,错误偏移量0x0009efbb解决。
  19. 弹性域 mysql_R12 AR INVOICE 接口表导入详解
  20. 25 - 线程池和指令系统

热门文章

  1. python绘制散点图的步骤_python如何绘制散点图?
  2. css 友情链接效果,友链样式与位置很重要!
  3. 《软件需求分析(第二版)》第 14 章——需求管理的原则和实践 重点部分总结
  4. ios沙箱模式开启_iOS沙盒篇
  5. java多线程队列_java多线程消费者生产者模式(BlockingQueue 通过阻塞队列实现)
  6. 关于mmdetection上手的几点说明
  7. Linux下构建自己的C++共享库并配合pkg-config生成链接选项
  8. pwn环境搭建_pwndbg、pwntools环境搭建(Unix系统)
  9. python renamer模块_Python - 批量文件重命名
  10. db2与mysql编目_DB2编目、联邦数据库 - Goopand's OS Space - OSCHINA - 中文开源技术交流社区...