Kök kullanıcı için kullanılabilir dosya sisteminin boş alanını görüntüleme


12

Varsayılan olarak, Linux, en azından ext4'te (sıradan kullanıcıların sürücüyü tamamen doldurmasını ve sistemi çökmesini önlemek ve parçalanmayı azaltmak için) kök kullanıcı için bir dosya sisteminin bir kısmını ayırır. Bununla birlikte, dfyalnızca normal kullanıcılar tarafından görünen boş alanı görüntüler (kök olarak çalıştırıldığında bile). Kökten erişilebilecek "gerçek" boş alanı nasıl görüntülersiniz?

Yanıtlar:


6

Yerleşik bir araç olduğundan emin değilim, ancak varsayılan% 5'de ayrılmış bıraktığınızı varsayarsak, bu size söyleyecektir:

df / | grep dev | cut -f 3,6 -d\  | awk '{print ($1*.05)+$2}'

dfkök, grepiçinde dev bulunan satır için (üstbilgiyi kaldırmak için), cutboyut ve kullanılabilir alanlar, daha sonra kullanılabilir awkolan disk boyutunun% 5'ini hesaplamak için bir komut dosyası kullanın.

Gerçek rezervasyonu alabilir tune2fs -l <device>ve bunu bir komut dosyasında yukarıdakilerle birleştirebilirsiniz.


2
Doğru, yani aşağıdaki komutu privilegied kullanıcılar için ayrılmıştır nasıl bölüm alanı çok bize söyleyecek: tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count". Örneğin, "multimedya arabelleği" bölümüm için: Block count: 2621440ve Reserved block count: 128449: kullanılabilir blokların% 4.9'u (parçalanmayı önlemeye yardımcı olan muhafazakar ayar).
tuk0z

cutKomutu kullanmaya gerek yoktur : alanları awkdoğrudan seçebilirsiniz . Aslında bu cutkomut benim için beklendiği gibi çalışmadı. Her neyse, daha kesin cevap vermesi gereken başka bir cevap verdim.
jarno

1
tune2fs -m <percentage> <device-name>Yalnızca kök kullanımı için ayrılmış disk alanını değiştirmek için yürütün .
luka5z

1
Yukarıdakilerden esinlenerek, MB sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
cinsinden

Bu taşınabilir bir cevap değil. İhtiyacınız olan cevabı aşağıdan kontrol edin (spoiler: tune2fs /dev/sda1veya daha iyisistat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
trs

17

Tune2fs ( / sbin / tune2fs dosyasında bulunur ) komutunu kullanarak, ayrılmış alanı kolayca belirleyebilirsiniz : (ve daha fazlası!)

tune2fs -l /dev/sda1

Referans için sistemimin bilgilerini vereceğim, bu soru için önemli olmayan yabancı satırları kaldıracağım:

Başlık ... ve birim adı, tüm sürücülerimi etiketledim , gerekirse tanımlamaları kolaylaştırır.

tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name:   xenon
Last mounted on:          /
...

GERÇEKTEN bu sistem çalışırken "temiz" demek istiyorum. Dürüst!

Filesystem state:         clean

Veri depolama kapasitesi bilgileri burada başlar:

Burada toplam 121.179.648 bloğum olduğunu görüyorum ... 4K (4096) blok boyutuyla, bazı büyük sayılarla (462-ish GB) çarpıyor. (Blok boyutu aşağıda belirtilmiştir)

Block count:              121179648

Ve ayrılmış bloklar ... yukarıdaki sayıya ve aşağıdaki sayıya bakarak .. nispeten hızlı bir şekilde% 1 saklıdır olduğunu anlayabilmelisiniz. Bu durumda (4.62-GB GB)

Reserved block count:     1211796

Şu anda ne kadar boş alan var? Tam burada!

Free blocks:              104090586
...

Ve tüm önemli blok boyutu. Çarpma için kullanışlıdır.

Block size:               4096
...

Bu satırlar bloklar WHO için ayrılmıştır ... kullanıcı 0, kök, bu durumda

Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
...

Burada daha fazla bilgi var, ancak bu size ne kadar kullanılabilir olduğunu ve daha ne kadarının kök için ayrıldığını hızlı bir şekilde belirleme yeteneği vermelidir. Basit matematik.

Bu yardımcı olur umarım. Unutma ... man sayfaları senin arkadaşın.


2

Bu, "/ yol" ile ilgili bölümdeki bayt cinsinden boş alanı görüntüler

printf '%s' $(($(stat -f --format='%f*%S' /path)))

Çalıştırmak için süper kullanıcı olmanıza gerek yok.

BTW arasındaki farkın ne olduğunu tam olarak anlamıyorum

% s blok boyutu (daha hızlı aktarımlar için)

% S temel blok boyutu (blok sayıları için)

kullanımında stat.


Harika - bu kök için ayrılan alan için mi hesaplanıyor?
Paul

Evet @ Paul, bu dahildir
Jarno

Çıktınız etkili bir şekilde bir toplamdır - bu nedenle bcbayt sayısını elde etmek için çıkışı kesebilir veya hatta --format='%f*%S/1024/1024/1024' | bckaç bölüm seçtiğinize bağlı olarak kilobayt / megabayt / gigabayt almak için kullanabilirsiniz .
Paul

@ Paul Bu ürün olarak adlandırılırdım. ikili önekler sırasıyla kibibayt, mebibytes ve gibibytes denir. Çevreleyen aritmetik genişleme $(( ... )) hesaplamayı yapar, ancak bölümün yalnızca tamsayı kısmı ile sonuçlanır (bölme eklerseniz). Yoksa kabuğunuz aritmetik genişlemeyi desteklemiyor mu?
jarno

@Paul Ancak, bcbunun yerine, eğer ihtiyacınız varsa, bölümü keyfi bir hassasiyetle elde edebilirsiniz.
jarno
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.