zoukankan      html  css  js  c++  java
  • 在Linux 中如何从进程相关的文件描述中恢复数据

    Linux中误删除了某个文件,但是 ps-ef|grep 文件名 发现某个进程还在使用该文件,那么可以通

    过以下方式恢复文件。

    例如:创建一个简单文件/tmp/test.txt, 随便向里面写点内容

    两个client模拟,client1 负责打开文件less /tmp/test.txt(模拟占用线程)

    client2 负责恢复文件,恢复步骤(均在client2上执行)

    1. 查看/tp/test.txt被占用的进程id

    [root@host tmp]# ps -ef|grep test.txt
    root     31631 31539  0 09:35 pts/0    00:00:00 less test.txt
    root     31649 31579  0 09:36 pts/1    00:00:00 grep test.txt

    2. cd /proc/31631/fd 文件夹中

    3. 执行ll命令
    [root@host fd]# ll
    total 0
    lrwx------ 1 root root 64 Dec  3 09:36 0 -> /dev/pts/0
    lrwx------ 1 root root 64 Dec  3 09:36 1 -> /dev/pts/0
    lrwx------ 1 root root 64 Dec  3 09:36 2 -> /dev/pts/0
    lr-x------ 1 root root 64 Dec  3 09:36 3 -> /dev/tty
    lr-x------ 1 root root 64 Dec  3 09:36 4 -> /tmp/test.txt (deleted)

    4. 发现了4是软连接到 /tmp/test.txt 文件中的

    cat 4 即可找到删除的文件内容

    以下是/proc目录中进程N的信息

    /proc/N/cmdline 进程启动命令
    /proc/N/cwd 链接到进程当前工作目录
    /proc/N/environ 进程环境变量列表
    /proc/N/exe 链接到进程的执行命令文件
    /proc/N/fd 包含进程相关的所有的文件描述符
    /proc/N/maps 与进程相关的内存映射信息
    /proc/N/mem 指代进程持有的内存,不可读
    /proc/N/root 链接到进程的根目录
    /proc/N/stat 进程的状态
    /proc/N/statm 进程使用的内存的状态
    /proc/N/status 进程状态信息,比stat/statm更具可读性
    /proc/self 链接到当前正在运行的进程
  • 相关阅读:
    HDU 2176 取(m堆)石子游戏 (尼姆博奕)
    HDU 1846 Brave Game (巴什博弈)
    HDU-1025 Constructing Roads In JGShining's Kingdom
    FOJ有奖月赛-2015年11月 Problem B 函数求解
    FOJ有奖月赛-2015年11月 Problem A
    JXNU acm选拔赛 不安全字符串
    JXNU acm选拔赛 涛神的城堡
    JXNU acm选拔赛 涛涛的Party
    JXNU acm选拔赛 壮壮的数组
    JXNU acm选拔赛 最小的数
  • 原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/9913343.html
Copyright © 2011-2022 走看看