系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > Linux通过lsof命令恢复误删文件

Linux通过lsof命令恢复误删文件的步骤(3)

时间:2015-06-08 17:16:16 作者:qipeng 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150608/50333.html 手机查看 评论

  现在我们开始找回数据, 首先用lsof查看一下:

  [zhaoke@fedora5 ~]$ lsof | grep myfile

  less 9104 zhaoke 4r REG 253,0 116549 492686 /home/zhaoke/myfile (deleted)

  第一个纵行是进程的名称(命令名), 第二纵行是进程号(PID), 第四纵行是文件描述符(r意思是普通文件), 现在你知道9104进程仍有打开文件, 文件描述符是4. 那我们开始从/proc里面拷贝出数据。 你可能会考虑使用cp -a, 但实际上没有作用, 你将拷贝的是一个指向被删除文件的符号链接:

  [zhaoke@fedora5 ~]$ ls -l /proc/9104/fd/4

  lr-x—— 1 zhaoke zhaoke 64 Nov 20 13:00 /proc/9104/fd/4 -》 /home/zhaoke/myfile (deleted)

  [zhaoke@fedora5 ~]$ cp -a /proc/9104/fd/4 myfile.wrong

  [zhaoke@fedora5 ~]$ ls -l myfile.wrong

  lrwxrwxrwx 1 zhaoke zhaoke 29 Nov 20 13:02 myfile.wrong -》 /home/zhaoke/myfile (deleted)

  [zhaoke@fedora5 ~]$ file myfile.wrong

  myfile.wrong: broken symbolic link to `/home/zhaoke/myfile (deleted)’

  [zhaoke@fedora5 ~]$ file /proc/9104/fd/4

  /proc/9104/fd/4: broken symbolic link to `/home/zhaoke/myfile (deleted)’

  然后, 使用cp拷贝出数据:

  [zhaoke@fedora5 ~]$ cp /proc/9104/fd/4 myfile.saved

  最后, 确认一下文件:

  [zhaoke@fedora5 ~]$ ls -l myfile.saved

  -rw-rw-r– 1 zhaoke zhaoke 116549 Nov 20 13:03 myfile.saved

  [zhaoke@fedora5 ~]$ man lsof | col -b 》 myfile.new

  [zhaoke@fedora5 ~]$ cmp myfile.saved myfile.new

  cmp比较无任何显示, 表示两个文件完全相同, 恢复成功。

  常用的参数列表:

  lsof filename 显示打开指定文件的所有进程

  lsof -a 表示两个参数都必须满足时才显示结果

  lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件

  lsof -u username 显示所属user进程打开的文件

  lsof -g gid 显示归属gid的进程情况

  lsof +d /DIR/ 显示目录下被进程打开的文件

  lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长

  lsof -d FD 显示指定文件描述符的进程

  lsof -n 不将IP转换为hostname,缺省是不加上-n参数

  lsof -i 用以显示符合条件的进程情况

  上面就是Linux使用lsof命令恢复误删文件的方法介绍了,使用完lsof命令后,记得重新下电脑。

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

热门教程

人气教程排行

Linux系统推荐

扫码关注
扫码关注

扫码关注 官方交流群 软件收录