İçin df
hesapla toplamları için kullanın --totals
seçeneği. Toplamların yalnızca belirli sürücülerde olmasını istiyorsanız, bunları bağımsız değişken olarak belirtin.
Örnekler (ve bilgisayarımdan çıktı)
Bu, tüm yerel bağların toplamıdır:
$ df --total -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
none 490M 660K 489M 1% /dev
none 497M 1,5M 495M 1% /dev/shm
none 497M 260K 496M 1% /var/run
none 497M 0 497M 0% /var/lock
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 19G 12G 7,3G 62%
Birkaç sürücü ile kısıtlama (belirtilen yol tam bir montaj noktası değilse, en yakın montaj noktasının kullanıldığını unutmayın [sondaki nota bakın] ):
$ df -hl --total /home /fastdisk
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 17G 12G 5,3G 69%
veya dev
isimleri kullanarak :
$ df -hl --total /dev/sda1 /dev/sdb1
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
/dev/sdb1 14G 12G 2,1G 85% /
total 17G 12G 5,3G 69%
Daha fazla özelleştirme
'Özel' olanlar dışındaki tüm mount'ları listelemek istiyorsanız, -x
bölüm türüne göre hariç tutma seçeneğini kullanabilirsiniz . ( -T
Türleri gösterme seçeneğini kullanın .)
Şahsen, etkileşimli kullanım için, ~/.bash_aliases
'fiziksel olmayan' bağları hariç tutmak için aşağıdaki bash takma adını (eklendi ) kullanıyorum.
alias df='df -h -x devtmpfs -x tmpfs -x debugfs'
Not
Bağlama noktaları içindeki yolların belirtilmesi, bazen bağlanma noktasına olan tam yolu belirten farklı form sonuçları verebilir. Örneğin, dizüstü bilgisayarımda sshfs
(yerel) dosya sunucumu bağlamak için kullanıyorum .
df -h ~/.server-root/ ~/.server-root/disks/A ~/.server-root/disks/B
Filesystem Size Used Avail Use% Mounted on
johan@server:/ 185G 58G 118G 33% /home/johan/.server-root
johan@server:/ 1,9T 637G 1,2T 35% /home/johan/.server-root
johan@server:/ 1,8T 1,1T 757G 59% /home/johan/.server-root
Sunucu kökü ( /
) adresinde bulunur ~/.server-root
. Ancak, sunucu üzerinde, diskler üzerine monte edilir /disks/*
ki, df
(dizüstü) hakkında 'bilmek' değil.
Anlaşılan df
uygun yolları verilirse, sunucuda farklı bağlar disk kullanımını listeleyebilirsiniz. Ancak, tüm yollar için aynı “Dosya Sistemi” ve “Bağlandı” yı gösterir, çünkü (inanıyorum)sshfs
yerel çekirdek bağlama tablosundaki tek bağlama noktası budur ( inanıyorum) .
Başka bir şey: Soruyla gerçekten ilgili değil, sorunun daha önceki bir cevabı ile ilgili.
Numaraları bir awk
komut dosyasıyla (ya da benzeri), daha önce gönderilen cevapların yaptığı gibi eklemek , bayrağı kullanırken iyi bir fikir değildir-h
. Bunun nedeni özel işlemlerin gerekli olmasıdır. Sadece bir satırda ve diğerinde size+=$2;
olan bir alan için yapamazsınız ve bundan faydalı bir şey elde edemezsiniz …418M
12G
Bir örnek için awk
, ekleme 500M
için 10.2G
verim
$ echo -e '500M\n10.2G' | awk '{size+=$1;} END{print size;}'
510.2
510.2 neyi?
Burada açıkça bir sorun var. Yani, hatırlanması için bir ipucu olarak , df
(ve 'insan tarafından okunabilir' sayıları kullanabilen ) çıktısında (otomatik) hesaplama yaparken . Eğer emin olun değil kullanmak -h
bayrağı ve hesaplama komut dosyasına girdi olduğunu, bunun yerine, (bayt, bloklar, KB'leri örneğin, ya da her neyse) normalize ve yapılacak 'ekran ölçeklendirme' ucunda. Çoğu komut dosyası yazma ve programlama dilinde böyle bir şey eklemek zor değildir:
If value < threshold Then
print (value),"B"
Else If value < 1024*threshold Then
print (value/1024),"kB"
Else If value < 1024*1024*threshold Then
print (value/1024/1024),"MB"
(and so on...)
burada değer bayt cinsindendir ve eşik değeri 1000 mertebesinde bir değerdir. Bu yöntemin sonucu, istenen aralıkta ve birkaç önemli basamakla yazdırılan değerleri (önek hariç) üretmek için kolayca ayarlayabilmenizdir. seçmek. Biçimin -h
genellikle sabit olduğu, anahtarlı standart yardımcı programlarla karşılaştırıldığında .
Tabii ki, bu hesaplama genellikle daha verimli ve / veya zarif yapılabilir, ancak bu yazıldığı belirli bir dil için bir sorudur. Açıkçası, sadece şimdi ve sonra etkileşimli olarak görüntülemek için çalışan bir kullanıcı komut dosyasında kullanılıyorsa bazı bilgiler, verimlilik gerçekten bir endişe değildir.