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

記錄一次刪除大文件,但磁盤沒有釋放空間的問題

服務器 restart 啟動 rest 很大的 rep 記錄 -h rsyslogd

上服務器查看/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
這個方法下次再嘗試

記錄一次刪除大文件,但磁盤沒有釋放空間的問題