1. 程式人生 > >linux 刪除檔案後,如何釋放磁碟空間

linux 刪除檔案後,如何釋放磁碟空間

硬碟大小 : 20G
問題 : 磁碟空間不足

處理過程 :
1. 執行”df -hl”命令,磁碟空間使用已滿,結果如下

Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 19G 31M 100% /
tmpfs 938M 0 938M 0% /dev/shm

2.發現一個14G的nohup.out檔案,使用 rm -rf命令刪除發現一個14G的nohup.out檔案,使用 rm -rf命令刪除

3.在根目錄”/”下,
執行 “du -sh”命令,結果為 5.2G,
執行”df -hl”命令,結果仍是使用100%。

解決辦法

解決過程: 執行方法: lsof | grep nohup.out

sh         6148   leo    1w      REG              202,1 14343692933  404832 /home/leo/app/nohup.out (deleted)
sh         6148   leo    2w      REG              202,1 14343692933  404832 /home/leo/app/nohup.out (deleted)
java       6149   leo    1w      REG              202
,1 14343692933 404832 /home/leo/app/nohup.out (deleted) java 6149 leo 2w REG 202,1 14343692933 404832 /home/leo/app/nohup.out (deleted)

殺死程序6148,6149

sudo kill -9 6148 
sudo kill -9 6149

然後執行”df -hl”檢視磁碟空間,磁碟空間已釋放,結果如下

Filesystem      Size  Used Avail Use%     Mounted on
/dev
/xvda1 20G 5.2G 14G 28% / tmpfs 938M 0 938M 0% /dev/shm

附:

lsof 命令

lsof(list open files)是一個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以如傳輸控制協議 (TCP) 和使用者資料報協議 (UDP) 套接字等,系統在後臺都為該應用程式分配了一個檔案描述符,無論這個檔案的本質如何,該檔案描述符為應用程式與基礎作業系統之間的互動提供了通用介面。因為應用程式開啟檔案的描述符列表提供了大量關於這個應用程式本身的資訊,因此通過lsof工具能夠檢視這個列表對系統監測以及排錯將是很有幫助的。
[[email protected] ~]# lsof |head -5
COMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1                 root  cwd       DIR              253,1      4096          2 /
systemd       1                 root  rtd       DIR              253,1      4096          2 /
systemd       1                 root  txt       REG              253,1   1478168     519674 /usr/lib/systemd/systemd
systemd       1                 root  mem       REG              253,1     20032     516898 /usr/lib64/libuuid.so.1.3.0

生產環境下 kill程序這種操作 慎用