
Linux主機(jī)需要定時清理日志文件騰出空間,但有時候清理完日志文件后發(fā)現(xiàn)硬盤空間還是爆滿,這個時候就需要手動查找出無用大文件進(jìn)行清理。這里記錄下常用的查看磁盤大小的命令以及一些問題。
du:用于列出每個文件或文件夾的大小
du是我們平常使用最多的查看磁盤容量的命令,常用的幾個用法如下
du -sch,查詢當(dāng)前目錄總占用空間,后面也可以跟指定文件

具體后面的參數(shù)含義,可以使用 man du 進(jìn)行查看,這里不列舉了。
df:顯示目前系統(tǒng)上文件磁盤的使用情況
這個命令一般用于查看整個系統(tǒng)的磁盤使用情況,常用的有
df -h ?目錄路徑,查看指定目錄所在磁盤使用空間

具體參數(shù)含義使用 man命令查看一下就好,這里的-h代表已可讀的方式顯示。上面每列的具體含義都有相應(yīng)的英文,就不一個個說了。
du和df命令的區(qū)別:
既然二者都是列出系統(tǒng)容量,那么二者的區(qū)別在哪里呢?
du:通過搜索文件來計算每個文件的大小然后累加
df:通過文件系統(tǒng)獲取空間大小
若用戶刪除了一個正在運行的應(yīng)用程序所打開的文件,那么du返回的值為減去了該文件后的大小,df返回的則是不減去該文件的大小,因為文件句柄還在使用,直到應(yīng)用程序釋放句柄df才不會將其統(tǒng)計在內(nèi)。
注意
為了防止使用不同命令出現(xiàn)不同的結(jié)果,我們刪除日志文件的時候避免直接使用 rm- rf xxx,可以采用將該文件清空的方式,比如 echo “” > xxx.log,配合shell腳本定時執(zhí)行效果更佳。
然而假如不小心使用了rm,我們需要定位出哪些文件的句柄沒有被釋放,即已經(jīng)被刪除且正在被使用的文件。使用“l(fā)sof | grep deleted” 命令找出處于刪除狀態(tài)下的文件,若其所在進(jìn)程暫時沒用,可以使用 “kill -9 pid”直接殺掉。
參考:58沈劍老師的一篇文章--具體啥名忘記了。。。