在linux運(yùn)維中,磁盤滿了是最經(jīng)常遇到的情況。通常情況下面,我們會(huì)先通過find 命令找出大文件,比如下面的命令找出大于10g的文件。 find / -size +10G 找出后我們可以通過echo 命令清空這個(gè)文件,有時(shí)間直接刪除這個(gè)文件,但刪除后df 發(fā)現(xiàn)磁盤還是100%,資源并沒有釋放。 那是因?yàn)殡m然文件被刪除,但如果還有程序打開(占用)這個(gè)文件,真實(shí)文件內(nèi)容并沒有釋放。 可以通過lsof 命令查看處于刪除狀態(tài)的文件句柄。
就可以發(fā)現(xiàn)PID為 25575 的進(jìn)程正在打開這個(gè)文件,并且連接已經(jīng)失效了。 $ file /proc/25575/fd/33/proc/25575/fd/33: broken symbolic link to `/oradata/DATAPRE/file.dbf (deleted)' 此時(shí)有兩種解決辦法,方法一比較粗暴,直接kill 掉這個(gè)進(jìn)程,但如果不能殺死進(jìn)程的話,方法二比較優(yōu)雅,清空這個(gè)fd的內(nèi)容。
|
|