自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux服務器文件刪除策略

系統(tǒng) Linux
由于Linux沒有回收站功能,所以線上服務器上所有要刪除的文件都會先移動到系統(tǒng)/tmp目錄下,然后定期清除/tmp目錄下的數(shù)據(jù)。

磁盤空間滿

由于Linux沒有回收站功能,所以線上服務器上所有要刪除的文件都會先移動到系統(tǒng)/tmp目錄下,然后定期清除/tmp目錄下的數(shù)據(jù)。這個策略本身沒有問題,但是通過檢查發(fā)現(xiàn)這臺服務器的系統(tǒng)分區(qū)中并沒有單獨劃分/tmp分區(qū),這樣/tmp下的數(shù)據(jù)其實占用了根分區(qū)的空間。既然找到了問題,那么刪除/tmp目錄下一些占空間較大的數(shù)據(jù)文件即可,檢查/tmp下最大的三個數(shù)據(jù)文。

  1. du -sh /tmp/* | sort -nr | head -3 

查看/tmp下最大的前三個數(shù)據(jù)文件 通過命令輸出發(fā)現(xiàn)在/tmp目錄下有個66GB大小的文件access_log,這個文件應該是Apache產(chǎn)生的訪問日志文件,從日志大小來看,應該是很久沒有清理Apache日志文件了,基本判定是這個文件導致的根空間爆滿,在確認此文件可以刪除后,執(zhí)行如下刪除操作:

  1. rm /tmp/access_log 

接著查看系統(tǒng)根分區(qū)空間是否釋放,從輸出可以看到,根分區(qū)空間仍然沒有釋放,這是怎么回事?

刪除文件空間不釋放

一般來說不會出現(xiàn)刪除文件后空間不釋放的情況,但是也存在例外,比如文件被進程鎖定,或者有進程一直在向這個文件寫數(shù)據(jù)等,要理解這個問題,就需要知道Linux下文件的存儲機制和存儲結構。

文件的數(shù)據(jù)與指針部分

一個文件在文件系統(tǒng)中的存放分為兩個部分:數(shù)據(jù)部分和指針部分,指針位于文件系統(tǒng)的meta-data中,在將數(shù)據(jù)刪除后,這個指針就從meta-data中清除了,而數(shù)據(jù)部分存儲在磁盤中。在將數(shù)據(jù)對應的指針從meta-data中清除后,文件數(shù)據(jù)部分占用的空間就可以被覆蓋并寫入新的內(nèi)容,之所以在出現(xiàn)刪除access_log文件后,空間還沒釋放,就是因為httpd進程還在一直向這個文件寫入內(nèi)容,導致雖然刪除了access_log文件,但是由于進程鎖定,文件對應的指針部分并未從meta-data中清除,而由于指針并未刪除,系統(tǒng)內(nèi)核就認為文件并未刪除。

查找被應用程序占用的已刪除文件列表

因此通過df命令查詢空間并未釋放也就既然有了解決問題的思路,那么接下來看看是否有進程一直在向access_log文件中寫數(shù)據(jù),這里需要用到Linux下的lsof命令,通過這個命令可以獲取一個仍然被應用程序占用的已刪除文件列表:

  1. lsof | grep delete 

從輸出結果可以看到,/tmp/access_log文件被進程httpd鎖定,而httpd進程還一直向這個文件寫入日志數(shù)據(jù)。從第7列可知,這個日志文件大小約70GB,而系統(tǒng)根分區(qū)總大小才100GB,由此可知,這個文件就是導致系統(tǒng)根分區(qū)空間耗盡的罪魁禍首。最后一列的“deleted”狀態(tài)說明這個日志文件已經(jīng)被刪除,但由于進程還在一直向此文件寫入數(shù)據(jù),因此空間并未釋放。

正確地清空文件

解決這一類問題的方法有很多種,最簡單的方法是關閉或重啟httpd進程,當然也可以重啟操作系統(tǒng),不過這些并不是最好的方法。對待這種進程不停對文件寫日志的操作,要釋放文件占用的磁盤空間,最好的方法是在線清空這個文件,具體可以通過如下命令完成:

  1. [root@localhost ~]# echo " " >/tmp/access_log 

通過這種方法,磁盤空間不但可以馬上釋放,也可保障進程繼續(xù)向文件寫入日志,這種方法經(jīng)常用于在線清理Apache、Tomcat、Nginx等Web服務產(chǎn)生的日志文件。

責任編輯:武曉燕 來源: segmentfault
相關推薦

2009-09-18 14:06:31

Nis服務器

2009-03-27 18:40:32

2011-03-08 15:16:02

2009-09-25 10:13:15

2018-11-26 08:12:54

2010-09-02 11:20:47

SQL刪除

2010-08-02 23:34:08

NFS服務器

2013-05-03 14:25:32

2009-11-11 10:18:02

2011-09-01 18:12:43

Linuxsamba

2009-07-11 18:54:05

2018-08-07 08:54:18

2015-05-29 13:22:10

Linux掛載運維

2021-09-10 10:07:17

Nginx虛擬主機服務器

2017-12-06 08:37:11

服務器硬件策略

2017-05-28 10:03:23

服務器監(jiān)控機架式

2010-09-01 17:07:08

Sql刪除服務器

2010-11-01 13:58:51

虛擬服務器

2019-02-19 13:57:28

2023-07-27 07:19:24

點贊
收藏

51CTO技術棧公眾號