使用lsof处理文件恢复、句柄以及空间释放问题

本文介绍了如何使用lsof命令处理文件句柄占用导致的空间未释放问题,以及如何在删除文件后进行数据恢复。通过模拟场景展示了使用lsof定位占用文件句柄的进程,并通过kill命令释放。同时,详细说明了文件恢复的步骤,包括创建测试文件、备份、删除文件、使用lsof找到文件描述符,以及如何从/proc目录恢复数据。
摘要由CSDN通过智能技术生成

        曾经在生产上遇到过一个df 和 du出现的结果不一致的问题,为了排查到底是哪个进程占用了文件句柄,导致空间未释放,首先在linux上面,一切皆文件,这个问题可以使用lsof这个BT的命令来处理(这个哈还可以来查询文件句柄泄露问题,应用程序的进程未关闭文件句柄)

1. 文件句柄以及空间释放问题

  • 注:在生产环境常见的问题就是,有维护人员或者开发同事使用tail命令实时查看日志。然后另外的人使用rm命令删除,这有就好导致磁盘空间不会真正的释放,因为你要删除的文件,还有进程在使用,文件句柄没有释放,即tail

1.1 模拟场景1

  • 创建文件testfile
    • touch testfile
  • 使用tail -f testfile命令一直查看
    • tail -f testfile
  • 删除该文件
    • rm testfile

1.2 正式使用lsof命令排查

  • 如果知道文件名,那就可以直接使用如下命令
    • lsof |grep testfile
  • 但是如果不知道是哪个文件,或者是很多文件都有这样的情况,需要使用如下命令
    • lsof |grep deleted
  • 上面命令出来的结果如下:
    • root 123 12244 0 14:47 pts/1 01:02:03  tail testfile
  • 使用kill 命令来释放文件句柄从而释放空间
    • kill 123

2. 文件恢复问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值