您的位置:首页 > 运维架构 > Linux

lsof查找放进linux回收站中的删除文件,并彻底删除或恢复文件

2017-05-17 11:54 561 查看
1、用df命令查看磁盘空间发现:总空间大于已用空间 + 剩余空间,剩余的3G空间没有了。造成应用程序无法启动。
   df -h

  Filesystem            Size  Used Avail Use% Mounted on

  /dev/sda2              60G   21G   36G  37% /
  根分区是ext3文件类型,ext3文件系统会默认保留5%的空间作为预留空间。
2、du得到到的根路径文件空间占用情况应当与df得到的文件系统磁盘占用的情况是一直的或者说相差无几。但是在某些情况下却会出现du得到的空间占用情况要远小于df得到的。
后通过查询,发现问题出现在deleted文件上。
root下lsof | grep deleted会发现多多少少有些文件状态出于deleted状态。
[root@eb152 ~]# lsof |grep deleted
进程名   PID       USER    FD   文件类型        大小(字节)  索引节点  文件名  [(状态)]
Java       3311    AuSP  
 8w      REG              253,0         778   10879268 ***.log (deleted)
状态为deleted为标记被删除,其实该文件并没有从磁盘中删除,类似windows下的回收站状态。
据称当有其他进程打开某文件时文件被删除,就会将该文件标记为deleted,并删除其目录节点。使用du查看时,因为没有该删除状态文件的节点信息,所以就不做统计,从而导致与df的结果不一致。
若要将deleted状态文件删除,则根据pid直接kill调相应进程即可。
找回被删除文件:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: