df -hl
サイズ、使用されている割合、空き容量を含むすべてのパーティションのリストが出力されることがわかります。
たとえば、sumのサイズと使用量のみを出力したい場合は、sda2
Linux(Ubuntu)にチェックして合計して表示するように指示しますか?sda3
答え1
df
合計を計算するには、--totals
オプションを使用してください。選択した一部のドライブの合計のみを計算するには、そのドライブをパラメータとして指定します。
はい(およびマイコンピュータの出力)
すべてのローカルインストールの合計は次のとおりです。
$ 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%
いくつかのドライブに制限されます。 (指定されたパスが正しいマウントポイントではない場合は、最も近いマウントポイントが使用されます。[文末の注意事項参照]):
$ 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%
またはdev
名前を使用してください:
$ 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%
追加のカスタマイズ
「特殊」インストールを除くすべてのインストールを一覧表示するには、-x
パーティションタイプごとに除外するオプションを使用できます。 (-T
タイプを表示するには、このオプションを使用してください。)
個人的にインタラクティブに使用するには、次のbashエイリアス(に追加~/.bash_aliases
)を使用して「非物理」インストールを除外します。
alias df='df -h -x devtmpfs -x tmpfs -x debugfs'
ノート
マウントポイント内でパスを指定すると、マウントポイントへの正確なパスを指定する以外の結果が表示されることがあります。たとえば、私のラップトップにsshfs
(ローカル)ファイルサーバーをインストールするために使用します。
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
サーバールート(/
)はにインストールされます~/.server-root
。ただし、サーバーではディスクがマウントされており、ラップ/disks/*
トップdf
ではこれを「知りません」。
正しいパスが与えられたら、df
サーバーのさまざまなインストールのディスク使用量を一覧表示することができます。ただし、すべてのパスに対して同じ「ファイルシステム」と「マウント先」が表示されます。(私は信じる)sshfs
これはローカルカーネルマウントテーブルの唯一のマウントポイントです(このマウントに関連付けられています)。
もう一つのこと:質問には関係ありませんが、関連があります。以前の回答この質問に。
awk
以前に公開された回答の一部など、スクリプト(または類似)を使用して数字を追加することは、いいえロゴを使用するときは良いアイデアです-h
。特別な処理が必要だからです。ある行と別の行のフィールドを操作してsize+=$2;
有用な情報を得ることはできません。418M
12G
たとえば、利回りに awk
追加500M
10.2G
$ echo -e '500M\n10.2G' | awk '{size+=$1;} END{print size;}'
510.2
510.2 何?
ここには明らかに何か問題があります。だから、覚えておくという通知のように,出力の(自動)計算中df
(そして他の利用可能なもの「人が読める」数字)。ぜひこうやってくださいいいえこの-h
フラグを使用すると、計算スクリプトへの入力が正規化されます(たとえば、バイト、ブロック、KB、またはその他)。「拡大/縮小表示」最後に。ほとんどのスクリプトとプログラミング言語では、次のようなものを追加することは難しくありません。
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...)
どこ値バイト単位と臨界点約1000程度の値です。この方法の結論は、所望の有効桁数で所望の範囲(プレフィックスを除く)の印刷値を生成するように容易に調整できることである。-h
一般に、フォーマットが固定されているスイッチを備えた標準ユーティリティの場合と比較してみてください。
もちろん、この種の計算はより効率的またはエレガントに行うことができますが、これは作成される特定の言語の問題です。正直に使ってみるとユーザースクリプト時々実行してインタラクティブに情報を確認すると、効率は実際には問題になりません。
答え2
私の考えでは、両方をsize
合計したいと思います。use%
df -hl | grep 'sda2\|sda3' | awk 'BEGIN{print "Size","Use%"} {size+=$2;percent+=$5;} END{print size,percent}' | column -t
答え3
次のツールを使用できますawk
。
df -hl | awk '/^\/dev\/sd[ab]/ { sum+=$5 } END { print sum }'
どこ:
/^\/dev\/sd[ab]/
/dev/sda
またはで始まる行だけをフィルタリングするパターン。/dev/sdb
{ sum+=$5 }
上記のパターンに一致する項目に5番目のフィールドを追加します。
awk
以下に役立つ参考資料を見つけることができます。awk.info Wiki。
答え4
通知が必要な場合は、IFTTT、Telegram、WebHooks(すべて無料)をご利用いただけます。
#!/bin/bash
diskusage=$(df -H | grep -vE '^Filesystem|tmpfs|cdrom|mmcblk0p1' | awk '{ print $5 " " $1 }'| cut -f1 -d '%')
hostname=$(hostname)
tolerance=(85)
date=$(date)
if [[ "$diskusage" -gt "$tolerance" ]]
then
echo ""
echo total disk usage is $diskusage%
echo ""
curl -X POST -H "Content-Type: application/json" -d '{"value1":"--Alert--","value2":"Total disk usage is '$diskusage'% ","value3":"Host information: '$hostname' "}' https://maker.ifttt.com/trigger/{alert}/with/key/PutYourKeyHEre
fi
echo ''
echo Disk usage is $diskusage%. The tolerance is $tolerance%. No alert fired $date
echo Disk usage is $diskusage%. The tolerance is $tolerance%. No alert fired $date >> /var/log/IFTTT/checkdiskspace.log