技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務器類 >

Linux服務器磁盤占滿問題解決

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-10-09 00:00┆點擊:

  今天下班某電商技術(shù)部leader發(fā)現(xiàn)個問題,說他們服務器硬盤滿了。把日志文件都刪掉了,可硬盤空間依舊滿。于是df -h查看了下各個掛載點的狀況(如下圖)。

Linux服務器磁盤占滿問題解決 三聯(lián)

  /dev/sda3占用了100%,那么我們du -s -h ./*看下目錄的占用情況(如下圖)。

  linux磁盤掛載點目錄占用情況(圖)

  掛載點下的目錄之和遠小于4.5G,那么是什么占用了硬盤呢?

  以下為該問題的解答:

  在apache/tomcat服務在運行狀態(tài)下,清空了運行服務的日志,從而導致了/dev/sda3 滿了的問題。一般情況下,大多數(shù)服務(包括腳本)在運行時,是不能刪除當前正在寫入的日志文件的。

  原理分析:

  1. 當前access.log日志正在被apache進程占用。

  2. 通過rm命令刪除access.log,實際只刪除了文件名(該日志文件應用記數(shù)不為0,因此空間不會被釋放)。

  3. 通過rm命令刪除了access.log后,apache依然寫日志到access.log中,當開啟apache進程時,已經(jīng)通過access.log定位到該文件的inode了,就是說再寫日志是不通過access.log,因此即使刪除了access.log,apache依然寫日志到access.log所在的inode節(jié)點,所以導致硬盤空間增加。

  4. 因為刪除了access.log,所以我們就找不到該文件了,du也查不到,就會出現(xiàn)硬盤滿了但看不到究竟是哪些文件占用的。

  (寫的不甚詳細,不明白的大家再google下。)

  解決方法:

  重啟該日志文件的相關服務或程序,如:為apache日志文件則重啟apache(如下圖,重啟后才硬盤空間占用正常)。

磁盤占用恢復正常(圖)