【知識點】NO.1—-關于刪除文件后未及時釋放磁盤空間問題

刪除了某些占用大存儲的文件,發現占用的磁盤空間并沒有的到釋放。怎么解決呢?
在工作中經常遇到服務器某個存放日志或者某些數據的磁盤(或者目錄),因為檢查不及時磁盤存儲滿了的狀況。釋放空間真的只是刪除文件這么簡單嗎?nonono…

我們先來模擬一下演示環境

首先我們看一下磁盤的存儲狀況

[root@Centos7 ~]#df? ? ?-h? ? ? ?#df? ?顯示每個文件所在的文件系統的信息 。-h以人類易讀的類型顯示。

文件系統? ? ? ? ? ? ? ?容量? ? ?已用? ?可用? ?已用%? 掛載點

1

[root@Centos7 ~]#dd if=/dev/zero of=/boot/456 bs=1M count=900

##dd if=/dev/zero of=/boot/456 bs=1M count=900? #通俗點來講及時批量創建文件內容到/boot/456中。
input? file? ? ? ?output? file? ? block size? ? ? ?count
輸入文件? ? ? ? ? 輸出文件 (批次大小) (批次)

2

[root@Centos7 ~]#ll? -h? /boot/456? ?顯示/boot/456的文件的詳細信息

4

#通過df -h命令我們看到 /boot目錄的使用率已經100%了。

3

下面我們通過常用的命令rm來進行刪除

5

刪除操作執行成功了,怎么/boot目錄的使用率還是100%?難道文件還存在??

6

那我們通過#ll -h /boot來查看一下/boot下的文件列表。是不是很奇怪?文件沒有了為什么占用的空間卻沒有正常的釋放!難道系統出問題了?

那怎么辦呢?

不要擔心,接下來我們來排查一下問題。

因為命令執行沒有失敗,文件也確實刪除掉了。

那么我們來通過lsof命令:來查詢一下文件即被打開編輯中同時又被執行了刪除操作的文件。

[root@Centos7 ~]#lsof |grep deleted

7

通過查詢我們看到最下邊的那一條vi編輯著的文件居然就是我們剛剛刪除的/boot/456文件,占用的空間居然還是800+M大小。

這就是明明刪除了文件,可是存儲空間卻沒有及時釋放的原因了。因為文件還在使用中,系統默認是在程序關掉后才會釋放空間。我們直接kill殺掉這個進程既可以了。

其實工作中經常遇到這種情況,服務器是很多人都可以訪問的,部分文件(例如日志文件等)的訪問權限比較低大多數都是開放讀寫權限的。這就有可能造成一個人在刪除日志文件的同時,還有別的同事正打開查看這個日志文件。從而造成空間未及時釋放。

[root@Centos7 ~]#kill -9 PID? ? 【PID 即程序運行的ID編號,實驗中的編號是3699】

[root@Centos7 ~]#kill -9 3699

8

殺掉該進程后df -h 命令發現空間立刻釋放出來了,是不是很神奇呢!

接下來,我們再來介紹另外一種刪除釋放存儲空間的辦法。這種方法就不會出現rm刪除后可能無法及時釋放空間的問題。

首先:我們先來恢復一下上面的實驗環境,還是/boot 目錄吧

9

環境搭建好了。

接下來開始試驗

[root@Centos7 ~]#> /boot/456? ?#這里我們使用【>】來先清空文件內容。

清空后df -h發現存儲空間即刻得到釋放了。

10

當然如果文件真的不需要了,在執行rm命令刪除即可。

 

后邊介紹的這種方法,是不是又簡單又實用呢?

不過這兩種方法使用的時候要注意文件不要跟錯咯,否則刪除的文件都是很難恢復的哦!

小伙伴們還有沒有別的更好的方法呢?

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88533

(1)
lvshijunlvshijun
上一篇 2017-11-18
下一篇 2017-11-18

相關推薦

  • CentOS軟RAID實現配置

     實現軟raid1、fdisk t fd //修改磁盤分區類型fd2、創建raid設備     創建一個RAID5,5塊兒硬盤4塊做RAID,1塊兒做空閑硬盤(頂替硬盤使用)    mdadm -C /dev/md0 -a yes -l 5  -n …

    Linux干貨 2016-08-30
  • 關于大型網站技術演進的思考(七):存儲的瓶頸(7)

    原文出處: 夏天的森林  本文開篇提個問題給大家,關系數據庫的瓶頸有哪些?我想有些朋友看到這個問題肯定會說出自己平時開發中碰到了一個跟數據庫有關的什么什么問題,然后如何解決的等等,這樣的答案沒問題,但是卻沒有代表性,如果出現了一個新的存儲瓶頸問題,你在那個場景的處理經驗可以套用在這個新問題上嗎?這個真的很難說。 其實不管什么樣的問題場景最…

    2015-03-11
  • 馬哥教育網絡班22期+第5周課程練習 忍者亂太郎喻成

    1、顯示當前系統上root、fedora或user1用戶的默認shell;   以root為例 awk -F':' '$1 ~ /root/ {print $7} ' /etc/passwd 2、找出/etc/rc.d/…

    Linux干貨 2016-10-09
  • 基于Python和MoviePy庫實現數據的動態展示

    基于Python和MoviePy庫實現數據的動態展示 (翻譯:以馬內利)  原文鏈接:Data Animations With Python and MoviePy   Python擁有很多實現數據可視化的庫,但是很少可以展示GIFs的動態視圖。 這篇博客主要介紹怎樣使用MoviePy庫作為一個其他可視化庫的通用插件。 Movi…

    2015-03-26
  • iptables 從入門到進階

    Linux的防火墻體系主要工作在網絡層,針對TCP/IP數據包實施過濾和限制,屬于典型的包過濾防火墻(或網絡層防火墻)。在Linux中netfilter和iptables都是指Linux防火墻。區別在于: netfilter:指的是Linux內核中實現包過濾防火墻的內部結構,不以程序或文件的形式存在,屬于“內核態”的防火墻功能體系。 iptables:指的是…

    Linux干貨 2017-01-10
  • N22-第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]# fd…

    Linux干貨 2016-10-07
欧美性久久久久