Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
2016-10-10 20:29
387 查看
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
在 windows 上删除文件时,如果文件还在使用中,会提示一个错误;但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还是在写入,都可以被 rm 简单地删除 :-<不过,rm 删除时并非是被真正地擦除,特别是当文件还在被进程打开时,是可以完整地恢复的。 linux 的每个文件对应一个 inode 号,它有两个计数 i_count (内存引用计数,当前使用这个文件的进程数量) 和 i_nlink (磁盘引用计数,硬链接数量)。rm 操作时,把 i_nlink 数量减1 ,但只要 i_nlink 和 i_count 任意一个不为 0 ,该文件并没有被系统删除,所占用的空间不会被回收,占用 df 里面显示的硬盘容量,数据不会被覆盖。
进程所打开的文件会记录在 proc 文件系统,在 /proc/<进程 id>/fd 中,会有关于这个进程所打开的所有文件描述符,如下 :
root@ubuntu:/proc/20697/fd# ll total 0 dr-x------ 2 libvirt-qemu kvm 0 Oct 10 12:39 ./ dr-xr-xr-x 9 libvirt-qemu kvm 0 Oct 10 12:21 ../ lrwx------ 1 libvirt-qemu kvm 64 Oct 10 12:39 0 -> /dev/null l-wx------ 1 libvirt-qemu kvm 64 Oct 10 12:39 1 -> /var/log/libvirt/qemu/instance-00000161.log lrwx------ 1 libvirt-qemu kvm 64 Oct 10 12:39 10 -> anon_inode:kvm-vm lrwx------ 1 libvirt-qemu kvm 64 Oct 10 12:39 11 -> anon_inode:[eventfd] lrwx------ 1 libvirt-qemu kvm 64 Oct 10 12:39 12 -> anon_inode:[eventfd] ...
因此,可以把被误删除的文件从这里找回来了。
相关文章推荐
- Linux下利用Lsof恢复误删文件的方法
- 利用Linux的特性恢复误删的数据文件
- Linux下利用Lsof恢复误删文件的方法
- 如何查看进程打开了哪些文件?---linux下的proc文件系统
- 如何查看进程打开了哪些文件?---linux下的proc文件系统
- 利用文件(占用进程)描述符恢复误删的文件
- 如何验证linux进程打开文件数的默认最大值(通常是1024)? 知识点: ulimit; watch -n 1 'ls -l /proc/xxx/fd | wc -l'
- 利用lsof去查看Unix/Linux进程打开了哪些文件
- 利用Linux的特性恢复误删的数据文件
- Linux 下利用 Lsof 恢复误删文件
- linux 进程文件 文件描述符
- linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用
- Linux回收站[改写rm防止误删文件无法恢复]
- 技巧之:恢复linux被误删文件(方案有3)
- linux下进程的最大线程数、进程最大数、进程打开的文件数
- linux下进程的最大线程数、进程最大数、进程打开的文件数
- Linux文件共享(一)——进程与打开文件
- Linux下查看所有进程打开的文件
- Linux下恢复误删文件:思路+实践
- Linux中的文件描述符与打开文件之间的关系