当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

# lsof |grep /var/log/messages

syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages (deleted)

从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

# head -n 10 /proc/1283/fd/2

Aug  4 13:50:15 holmes86 syslogd 1.4.1: restart.

Aug  4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started.

Aug  4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007

Aug  4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)

Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)

从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

linux内核文件恢复,linux下系统文件恢复相关推荐

  1. linux 内核文件操作,Linux 内核文件操作

    正常思路是应用里读取文件内容,再通过ioctl.write等方式把文件buffer传送到内核,内核里不推荐使用对文件IO直接操作,但是要使用还是可以的. 思路如下: 一.filp_open打开获取句柄 ...

  2. Linux内核文件vmlinux 和压缩后的bzImage文件格式分析

    Linux内核文件vmlinux 和压缩后的bzImage文件格式分析 ================= 1. 需要使用的命令 ================ readelf    -- 显示el ...

  3. 几个重要的RedHat Linux内核文件介绍 (1)

    From:http://tech.sina.com.cn/s/s/2006-06-27/061923370.shtml Linux服务器内核编译基础 mynix编译自www.linux.org之Lin ...

  4. 如何编译Linux内核文件

    如何编译Linux内核文件 参考:朱有鹏Uboot的全集 前言:我们的Linux内核文件动则数万个文件,很多个子文件夹,当然是使用Makefile管理了,但是是不是真的仅仅只是make一下就可以了呢? ...

  5. Linux内核文件操作

    Linux内核文件操作 前言 一.文件操作结构体 二.VFS之file_operations对象 1.文件打开filp_open 2.文件关闭filp_close 3.文件读取vfs_read 4.文 ...

  6. 从入门到精通ARM(4412)-Linux内核驱动编程【下】-李志勇-专题视频课程

    从入门到精通ARM(4412)-Linux内核驱动编程[下]-247人已学习 课程介绍         嵌入式绝对是当前IT领域最炙手可热的话题了.其主要应用领域涵盖与人类相关的各行各业: * 消费电 ...

  7. ubuntu生成Linux内核解压,Ubuntu下生成linux内核

    写在前面:由于老师所给的指导文档经过测试之后发现已经不太适用于现在ubuntu下面的实际操作情况(貌似这个是按照RED HAT下面的情况来写的),具体体现在一些指令不适用(mkinitrd),还有引导 ...

  8. 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)

    1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...

  9. 武汉linux内核好找吗,Linux内核入门

    Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补 ...

  10. 低温linux内核启动readl,Linux内核启动流程分析(一)

    很久以前分析的,一直在电脑的一个角落,今天发现贴出来和大家分享下.由于是word直接粘过来的有点乱,敬请谅解! S3C2410 Linux 2.6.35.7启动分析(第一阶段) 1.依据arch/ar ...

最新文章

  1. Android Dialog 弹出的时候标题栏闪烁一下的处理方法
  2. 剑指offer:面试题11. 旋转数组的最小数字
  3. 13.PHP中循环结构之foreach循环语句(任务一)
  4. 06_Android中ArrayAdapter的使用
  5. Ceph OSD操作 命令详解
  6. 【转】时间序列分析——基于R,王燕
  7. CRI陆宵吴:夯实底层,音视频技术未来不远
  8. 正确获取Java事件通知
  9. 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)
  10. Gitlab Java API 使用示例
  11. RabbitMQ的web界面解析
  12. 分布式平台下的HS(High-Security) --对称加密
  13. vCenter 6.0 vsca 安装遇到的一些小问题
  14. 深入浅出python中文版pdf-深入浅出Python 巴里著 中文 PDF版 [37M]
  15. MTK芯片资料分享,2018MTK芯片资料大全
  16. 长沙黄花机场大巴车及公交车运行路线与时刻表
  17. 笔记19-字节缓冲流字符流
  18. Vue项目的登录和注册界面
  19. 币圈小白必读的6本加密货币书籍
  20. 有道字典 Chrome Extension

热门文章

  1. mysql中文显示问号,不能识别中文的解决方案
  2. win10想说爱你不容易——安装.net3.5也是一个坑(已有完美解决方法)
  3. 安装Visio 2016与原本的office冲突的最终解决方案
  4. npm install vs. update - 有什么区别?
  5. LINQ聚合算法解释
  6. C语言小程序显示心形,如何用vc6.0编出来一个心形
  7. web浏览器_微软低头,Chrome 一统浏览器!
  8. HoloLens1开发(三):Trilib插件动态加载模型-Part2
  9. 微信小程序下载图片保存到本地
  10. 计算机工程学院运动会方阵口号,运动会方阵口号(精选多篇)