it-swarm.asia

du ve df farkı

Df% 94/full raporları bir dosya sunucum var. Ancak du'ya göre, çok daha az kullanılır:

# df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             270G  240G   17G  94% /
# du -hxs /
124G    /

Bu açık okudum ama silinmiş dosyalar bundan sorumlu olabilir, ancak bir yeniden başlatma bunu düzeltmedi.

Bu Linux, ext3.

saygılarımızla

33
Andreas Kuntzagk

Tamam, buldum.

/ Mnt/Backup aynı dosya sisteminde eski bir yedek vardı ve sonra o yere monte harici bir sürücü. Du dosyaları görmedi. Yani bunu temizlemek disk alanımı geri verdi.

Muhtemelen bu şekilde oldu: günlük yedekleme komut dosyası çalışırken harici sürücü bir kez çıkarıldı.

32
Andreas Kuntzagk

Ben o zaman bu bağlantı kapalı olabilir tüm nedenlerle daha kapsamlı bir açıklama bulacaksınız sanmıyorum. Yardımcı olabilecek bazı önemli noktalar:

  • İnode kullanımınız nedir, neredeyse% 100 ise, işleri karıştırabilir:

    df -i

  • Blok büyüklüğünüz nedir? Çok sayıda küçük dosya ve büyük bir blok boyutu biraz eğri olabilir.

    Sudo tune2fs -l/dev/sda1 | grep 'Blok boyutu'

  • Silinen dosyalar, bunu araştırdığınızı söylediniz, ancak toplam alanı elde etmek için aşağıdaki boru hattını kullanabilirsiniz (lsof yerine bulmak için bir acı olduğu için lsof yerine bulmayı seviyorum):

    Sudo find/proc/*/fd -printf "% l\t% s\n" | grep silindi | kesim -f2 | (tr '\ n' +; yankı 0) | M.Ö

Ancak, bu neredeyse 2 kat kapalı. Güvenli olması için bağlantı kesildiğinde fsck bölümünü çalıştırın.

18
Kyle Brandt

İşlemler hala açıkken kaldırılan bir dosya örneği gibi görünüyor. Bu bağlantı kesme işlemi du komutunun dosya sisteminde varolan dosyaların toplam alanını toplamasına neden olurken, df dosya sisteminde kullanılabilir blokları gösterir. Açık ve silinmiş bir dosyanın blokları, o dosya kapatılana kadar serbest bırakılmaz.

/ Proc'u inceleyerek hangi işlemlerin açık ancak silinmiş dosyaları olduğunu bulabilirsiniz

find /proc/*/fd -ls | grep deleted
11
TCampbell

Sizin durumunuzdaki en olası neden, çok küçük (sürücüdeki blok boyutunuzdan daha küçük) çok sayıda dosyanızın olmasıdır. Bu durumda df, kullanılan tüm blokların toplamını bildirirken du, dosya boyutlarının gerçek toplamını rapor edecektir.

8
wolfgangsz

Katılıyorum

lsof +L 1 /home | grep -i deleted

başlamak için iyi bir yer, benim durumumda, çalışan Perl komut dosyalarının olduğunu ve silinmesi gerekiyorsa bile, çok sayıda dosyayı canlı tuttuğumu fark ettim.

Perl işlevlerini öldürdüm ve bu du ve df ile neredeyse aynı, dava kapandı.

7
Sverre

Varsayılan olarak, bir dosya sistemini EXT3 ile biçimlendirdiğinizde, sürücünün% 5'i kök için ayrılmıştır. df neyin mevcut olduğunu bildirirken bu rezervi hesaba katarken, du aslında neyin kullanımda olduğunu gösterir.

Ayrılmış blokları çalıştırarak görüntüleyebilirsiniz:

tune2fs -l/dev/sda | grep -i rezerv

ve şöyle bir şey elde edersiniz:

Reserved block count:     412825
Reserved GDT blocks:      1022
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

Bunu daha düşük bir yüzdeye ayarlamak isterseniz, böyle bir şeyle yapabilirsiniz

tune2fs -m 1/dev/sda

Bunu 0'a düşürebilirsiniz, ancak bu sizin kök dosya sisteminiz olduğundan bunu yapmaktan çekinirim. Dosya sistemi gerçekten doldurulmuşsa, temizlemek için gerekli bakım görevlerini zorlaştırabilir.

1
Alex

Belki du'nun dizinlerin boyutunu da eklememesi mümkün müdür? Yine de, her şeyden sorumlu olamayacak çok büyük bir fark gibi görünüyor.

0
Brian Knoblauch