linux把sshd进程文件误删了怎么办,Linux 利用进程打开的文件描述符(/proc)恢复被误删文件...

Linux 利用进程打开的文件描述符(/proc)恢复被误删文件

在 windows 上删除文件时,如果文件还在使用中,会提示一个错误;但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还是在写入,都可以被 rm 简单地删除 :-<

不过,rm 删除时并非是被真正地擦除,特别是当文件还在被进程打开时,是可以完整地恢复的。 linux 的每个文件对应一个 inode 号,它有两个计数 i_count (内存引用计数,当前使用这个文件的进程数量) 和 i_nlink (磁盘引用计数,硬链接数量)。rm 操作时,把 i_nlink 数量减1 ,但只要 i_nlink 和 i_count 任意一个不为 0 ,该文件并没有被系统删除,所占用的空间不会被回收,占用 df 里面显示的硬盘容量,数据不会被覆盖。

进程所打开的文件会记录在 proc 文件系统,在 /proc//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]

...

因此,可以把被误删除的文件从这里找回来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值