偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深入解析:用 lsof 揪出“幽靈文件”釋放磁盤(pán)空間

運(yùn)維
“幽靈文件”雖不常見(jiàn),但一旦出現(xiàn)就很容易造成磁盤(pán)空間莫名減少。掌握 lsof,不僅能迅速定位問(wèn)題,更能為你節(jié)省大量排查時(shí)間。

日常運(yùn)維中,你是否遇到過(guò)這樣的情況:明明已經(jīng)刪除了大文件,但磁盤(pán)空間卻遲遲未釋放?du 顯示沒(méi)問(wèn)題,df 卻提示磁盤(pán)快滿?這背后可能隱藏著一種“幽靈文件”現(xiàn)象。本文將帶你深入了解問(wèn)題根源,并借助 lsof 工具快速定位并解決這類疑難問(wèn)題。

什么是“幽靈文件”?

“幽靈文件”(又叫 deleted but open files)是指已經(jīng)被從文件系統(tǒng)中刪除,但依然被某些進(jìn)程打開(kāi)著的文件。它們不再出現(xiàn)在目錄結(jié)構(gòu)中,但因?yàn)楸贿M(jìn)程持有,它們的空間不會(huì)被釋放。

?? 舉個(gè)例子:你運(yùn)行了一個(gè)程序,它在寫(xiě)一個(gè)日志文件 audit.log。某天你為了節(jié)省空間直接刪除了 audit.log,但這個(gè)程序并沒(méi)有關(guān)閉文件句柄,導(dǎo)致這部分空間仍然被占用。

[root@s-zb-dba02 mnt]# lsof +L1 | grep deleted
auditd    6134   root    4w   REG  253,0155446270995536 /var/log/audit/audit.log (deleted)
.....

問(wèn)題表現(xiàn)

使用 df -h 看到根目錄快滿:

[root@s-zb-dba02 mnt]# df -h
文件系統(tǒng)                 容量  已用  可用 已用% 掛載點(diǎn)
devtmpfs                 252G     0  252G    0% /dev
tmpfs                    252G  771M  252G    1% /dev/shm
tmpfs                    252G   14G  239G    6% /run
tmpfs                    252G     0  252G    0% /sys/fs/cgroup
/dev/mapper/rhel-root     42G   41G  1.2G   98% /
....

而 du -sh /* 卻發(fā)現(xiàn)加起來(lái)沒(méi)這么多空間:

du-sh /*
8G /var
1G /home
...
總計(jì)加起來(lái)遠(yuǎn)遠(yuǎn)小于 42G

這就說(shuō)明:有空間被“非文件系統(tǒng)中的文件”占用了,也就是“幽靈文件”!

lsof 是什么?

lsof(List Open Files)是 Linux 系統(tǒng)的核心診斷工具,它能列出所有進(jìn)程打開(kāi)的文件資源。在 Linux哲學(xué)中"一切皆文件"的背景下,lsof 可查看的不僅是常規(guī)文件,還包括:

  • 網(wǎng)絡(luò)套接字(TCP/UDP)
  • 管道(PIPE)和 FIFO
  • 共享內(nèi)存
  • 設(shè)備文件
  • 被刪除但仍被進(jìn)程占用的文件

基礎(chǔ)用法速查:

# 查看指定進(jìn)程打開(kāi)的文件
$ lsof-p<PID>

# 查看指定用戶打開(kāi)的文件
$ lsof-u<username>

# 查看指定目錄下被打開(kāi)的文件
$ lsof +D /path/to/dir

# 查看指定文件系統(tǒng)的打開(kāi)文件(推薦排查磁盤(pán)空間問(wèn)題)
$ lsof +aL1 <mount-point>

關(guān)鍵參數(shù)解析:

  • +a:AND條件組合
  • +L1:僅顯示鏈接數(shù)小于1的文件(即被刪除的文件)
  • +aL1:組合條件查找已刪除但被占用的文件

如何用 lsof 揪出“幽靈文件”?

你只需要一條命令,就能找到這些占用磁盤(pán)空間的“幽靈文件”:

lsof +L1 |grep deleted

示例輸出:

COMMAND   PID    USER    FD   TYPE DEVICE     SIZE/OFF NLINK     NODE NAME
auditd    6134   root    4w   REG  253,0155446270995536 /var/log/audit/audit.log (deleted)
tuned     7696   root    3w   REG  253,054912034451806 /var/log/tuned/tuned.log (deleted)
rsyslogd  7700   root    5w   REG  253,0391297111920101454061 /var/log/messages-20250310 (deleted)
rsyslogd  7700   root    6w   REG  253,0391297111920101454061 /var/log/messages-20250310 (deleted)
rsyslogd  7700   root    7w   REG  253,0391297111920101454061 /var/log/messages-20250310 (deleted)
rsyslogd  7700   root    8w   REG  253,0391297111920101454061 /var/log/messages-20250310 (deleted)

字段解釋:

  • COMMAND:哪個(gè)進(jìn)程
  • PID:進(jìn)程 ID
  • FILE:文件類型(txt、mem、del等)
  • SIZE:文件大小
  • NAME:文件路徑(顯示 deleted)

如何解決?

(1) 方法一:重啟進(jìn)程(推薦)

找到對(duì)應(yīng)的 PID,使用如下命令結(jié)束它:

kill-91234

或者優(yōu)雅重啟進(jìn)程(推薦):

systemctl restart auditd

注意:重啟服務(wù)前請(qǐng)確保不影響業(yè)務(wù)運(yùn)行!

(2) 方法二:使用 truncate 清空文件

若不能重啟,可以通過(guò) proc 文件系統(tǒng),清空該文件句柄:

truncate -s0 /proc/6134/fd/4

其中 6134 是 PID,4 是對(duì)應(yīng)的文件描述符,可在 lsof 結(jié)果中找到。

預(yù)防措施

  • 程序中使用日志輪轉(zhuǎn)(logrotate)+ 信號(hào)通知關(guān)閉舊句柄。
  • 日志定期清理時(shí),建議使用 truncate 而不是 rm。
  • 定期巡檢系統(tǒng)中被刪除但仍然打開(kāi)的文件:
lsof|grep deleted

小結(jié)

“幽靈文件”雖不常見(jiàn),但一旦出現(xiàn)就很容易造成磁盤(pán)空間莫名減少。掌握 lsof,不僅能迅速定位問(wèn)題,更能為你節(jié)省大量排查時(shí)間。

記?。簞h除不等于釋放,進(jìn)程還在引用,就還占空間!

責(zé)任編輯:趙寧寧 來(lái)源: 攻城獅成長(zhǎng)日記
相關(guān)推薦

2023-03-05 22:11:20

刪除文件磁盤(pán)

2022-11-06 19:34:53

UbuntuLinux

2019-11-20 10:24:43

Linux重復(fù)文件磁盤(pán)

2019-11-20 10:23:51

磁盤(pán)WindowsLinux

2020-01-10 16:00:16

Windows 10更新磁盤(pán)空間

2023-03-03 00:07:24

2010-04-08 15:24:36

Windows磁盤(pán)空間

2021-08-30 07:53:54

Linuxncdu磁盤(pán)

2020-04-09 16:29:40

Windows 10系統(tǒng)更新微軟

2011-01-18 10:25:19

Linux磁盤(pán)分區(qū)

2023-04-18 23:31:59

Linux磁盤(pán)系統(tǒng)

2010-05-27 17:51:55

Linux查看磁盤(pán)空間

2022-08-07 12:17:21

Snap磁盤(pán)

2021-02-11 08:11:50

Window10Docker容器

2020-07-09 09:55:12

diskonautLinux導(dǎo)航器

2018-07-24 08:50:40

Linux磁盤(pán)空間磁盤(pán)利用率

2010-06-17 15:01:24

Linux查看磁盤(pán)空間

2024-11-28 13:16:47

Linux磁盤(pán)

2018-01-11 15:36:23

命令磁盤(pán)空間Docker

2020-05-12 09:02:29

Linux磁盤(pán)硬盤(pán)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)