1. 程式人生 > >記錄一次刪除大檔案,但磁碟沒有釋放空間的問題

記錄一次刪除大檔案,但磁碟沒有釋放空間的問題

上伺服器檢視/dev/xxx 掛載的/var 快滿了都過了90%,所以需要清理一下日誌檔案了
df -h
...
/dev/xxx xxG xxG 1.0G 93% /var
...

去/var/log中檢查到檔案
cd /var/log
ls
...
-rw-------. 1 root root 26G 10月 20 15:18 xxxx.log
...

也就是xxxx.log 這個檔案有佔了很大的磁碟空間,看了一下里面的內容,發現是syslog的日誌檔案;裡面儲存的是有離現在幾個月的,所以刪除它
rm xxxx.log
然後再df -h
...
/dev/xxx xxG xxG 1.0G 93% /var
...
發現磁碟空間並未釋放,應該有程式還在操作這個檔案,指標未釋放
lsof | grep deleted | grep xxxx.log
rsyslogd xxx1 root xw REG 8,2 xxxxxxx xxxx /var/log/xxxx.log (deleted)
發現是syslog程式還在操作這個檔案
於是用這個程式的程序號:xxx1 kill它
kill -9 xxx1
完事之後,發現rsyslog未啟動了
只能重啟
/etc/init.d/rsyslog restart
關閉系統日誌記錄器: [失敗]
啟動系統日誌記錄器: [確定]

再來檢視磁碟空間發現空間被釋放了
之後google到一種方式 就是 在刪除之前 先清空檔案,再刪除檔案 這樣能快速釋放磁碟空間。
echo "" > xxx.log
rm -rf xxx.log
這個方法下次再嘗試