精品国语人妻色乱码二区,免费乱理伦片在线观看2018,日韩精品视频在线播放,高潮无码又爽又刺激视频在线

<source id="8jepl"><menu id="8jepl"></menu></source>
    <source id="8jepl"><menu id="8jepl"></menu></source>
    <rp id="8jepl"><mark id="8jepl"><label id="8jepl"></label></mark></rp>
          <source id="8jepl"><menu id="8jepl"><label id="8jepl"></label></menu></source>
          <source id="8jepl"></source>
              <source id="8jepl"></source>
                <video id="8jepl"><menu id="8jepl"></menu></video>
                0712-2888027 189-8648-0214
                微信公眾號(hào)

                孝感風(fēng)信網(wǎng)絡(luò)科技有限公司微信公眾號(hào)

                當(dāng)前位置:主頁 > 技術(shù)支持 > Linux > df和du顯示的磁盤空間使用情況不一致的原因及處理

                df和du顯示的磁盤空間使用情況不一致的原因及處理

                時(shí)間:2015-11-09來源:風(fēng)信官網(wǎng) 點(diǎn)擊: 1080次

                在Linux下查看磁盤空間使用情況,最常使用的就是du和df了。然而兩者還是有很大區(qū)別的,有時(shí)候其輸出結(jié)果甚至非常懸殊。

                1. 如何記憶這兩個(gè)命令

                du-Disk Usage

                df-Disk Free

                2. df 和du 的工作原理

                2.1 du的工作原理

                du命令會(huì)對(duì)待統(tǒng)計(jì)文件逐個(gè)調(diào)用fstat這個(gè)系統(tǒng)調(diào)用,獲取文件大小。它的數(shù)據(jù)是基于文件獲取的,所以有很大的靈活性,不一定非要針對(duì)一個(gè)分區(qū),可以跨越多個(gè)分區(qū)操作。如果針對(duì)的目錄中文件很多,du速度就會(huì)很慢了。

                2.2 df的工作原理

                df命令使用的事statfs這個(gè)系統(tǒng)調(diào)用,直接讀取分區(qū)的超級(jí)塊信息獲取分區(qū)使用情況。它的數(shù)據(jù)是基于分區(qū)元數(shù)據(jù)的,所以只能針對(duì)整個(gè)分區(qū)。由于df直接讀取超級(jí)塊,所以運(yùn)行速度不受文件多少影響。

                3 du和df不一致情況模擬

                常 見的df和du不一致情況就是文件刪除的問題。當(dāng)一個(gè)文件被刪除后,在文件系統(tǒng)目錄中已經(jīng)不可見了,所以du就不會(huì)再統(tǒng)計(jì)它了。然而如果此時(shí)還有運(yùn)行的進(jìn) 程持有這個(gè)已經(jīng)被刪除了的文件的句柄,那么這個(gè)文件就不會(huì)真正在磁盤中被刪除,分區(qū)超級(jí)塊中的信息也就不會(huì)更改。這樣df仍舊會(huì)統(tǒng)計(jì)這個(gè)被刪除了的文件。

                (1)當(dāng)前分區(qū)sda1的使用情況

                [root@centos192 testdu]# df -h /dev/sda1
                文件系統(tǒng)          容量  已用  可用 已用%% 掛載點(diǎn)
                /dev/sda1              49G  776M   45G   2% /var

                (2)新建一個(gè)1GB的大文件

                [root@centos192 var]# dd if=/dev/zero of=myfile.iso bs=1024k count=1000
                記錄了1000+0 的讀入
                記錄了1000+0 的寫出
                1048576000字節(jié)(1.0 GB)已復(fù)制,24.0954 秒,43.5 MB/秒

                (3)此時(shí)的分區(qū)sda1使用情況
                df結(jié)果:

                [root@centos192 var]# df -h /dev/sda1
                文件系統(tǒng)<span style="white-space:pre">  </span>      容量  已用  可用 已用%% 掛載點(diǎn)
                /dev/sda1              49G  1.8G   44G   4% /var

                du結(jié)果:

                [root@centos192 var]# du -sh /var/
                1.6G    /var/

                此時(shí)兩者結(jié)果基本相同。

                (4)模擬一個(gè)進(jìn)程打開這個(gè)大文件,然后刪除這個(gè)大文件

                [root@centos192 var]# tail -f myfile.iso &
                [1] 23277
                [root@centos192 var]# rm -f myfile.iso

                (5)此時(shí),再對(duì)比du和df的結(jié)果
                首先確認(rèn)有進(jìn)程持有myfile.iso句柄。

                [root@centos192 var]# lsof | grep myfile.iso
                tail      23955      root    3r      REG                8,1 1048576000       7999 /var/myfile.iso (deleted)

                [root@centos192 var]# du -sh /var/
                596M    /var/
                [root@centos192 var]# df -h /dev/sda1
                文件系統(tǒng)          容量  已用  可用 已用%% 掛載點(diǎn)
                /dev/sda1              49G  1.8G   44G   4% /var

                可以看出,df結(jié)果沒有變化,而du則不再統(tǒng)計(jì)被刪除了的文件myfile.iso。

                (6)停止模擬進(jìn)程,再對(duì)比du和df結(jié)果
                首先確認(rèn)沒有進(jìn)程持有myfile.iso句柄。

                [root@centos192 var]# lsof | grep myfile.iso
                [root@centos192 var]#

                [root@centos192 var]# du -sh /var/; df -h /dev/sda1
                596M    /var/
                文件系統(tǒng)          容量  已用  可用 已用%% 掛載點(diǎn)
                /dev/sda1              49G  776M   45G   2% /var

                此時(shí),myfile.iso已經(jīng)沒有進(jìn)程占有它了,也就從磁盤上刪除了,分區(qū)的超級(jí)塊信息已經(jīng)更改,df也就顯示正常了。

                4 工作中需要注意的地方

                (1)當(dāng)出現(xiàn)du和df差距很大的情況時(shí),考慮是否是有刪除文件未完成造成的,方法是lsof命令,然后停止相關(guān)進(jìn)程即可。
                (2)可以使用清空文件的方式來代替刪除文件,方式是:echo > myfile.iso。
                (3)對(duì)于經(jīng)常發(fā)生刪除問題的日志文件,以改名、清空、刪除的順序操作。
                (4)除了rm外,有些命令會(huì)間接的刪除文件,如gzip命令完成后會(huì)刪除原來的文件,為了避免刪除問題,壓縮前先確認(rèn)沒有進(jìn)程打開該文件。

                熱門關(guān)鍵詞: df du 磁盤空間 使用情況
                欄目列表
                推薦內(nèi)容
                熱點(diǎn)內(nèi)容
                展開