Linuxディスクスペース

Linuxディスクスペース

周りを見回すdf -hT。だから私はそれを使ってディスクスペース(全体)と残りのスペースを取得します。しかし、問題はこの情報を得るための別の方法があるかどうか疑問に思います。ここにコピーしたコードは、awkを使用して(最後にBを追加します)、合計ディスク容量をGB単位で提供し、ご覧のようにawkを使用して切り取ります。

これはあなたの中にはとても混乱するかもしれません(私はまだbashを学んでいます)。提案があれば自由に私の心の中に残してください。私はapt-getを使ってソフトウェアをダウンロードしなくても、すべてのサーバー/マシンで動作するオプションを探していることに注意してください。

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "\B"}'
awk: cmd. line:1: warning: escape sequence `\B' treated as plain `B'
912GB

また、awkメッセージを削除する方法もわかりません。少し変に見えるかもしれませんが、どこかで始める必要があります!

答え1

バックスラッシュを削除すると私に役立ちました。

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "B"}'

次のように単純化できます。

df -hT /home | awk 'FNR == 2 {print $3 "B"}'

答え2

情報を取得する他の方法に関する質問に答えるために、coreutilsにはオプションを使用してファイルシステム情報を照会するstat機能がありますstatfs(デフォルトのシステムコールは次のとおりです)-f。これは一般的な情報よりも詳細な情報を提供できますdf。たとえば、フォーマット指定子の完全なリストについてはstatのmanページを参照してください。

$ stat -f /tmp --printf='{"block-size": %S, "total-blocks": %b, "free-blocks-users": %a, "free-blocks-root": %f}\n'
{"block-size": 4096, "total-blocks": 7559140, "free-blocks-users": 1693162, "free-blocks-root": 2077148}

より関連性の高い例では、ファイルシステムサイズをブロック単位で印刷します。

$ stat -f /tmp --printf '%b\n'
7559140

または、バイトを計算するにはブロックサイズを掛けます(ここでは数値計算にGNU dcが使用されます)。

$ stat -f /tmp --printf '%S %b *p' | dc
30962237440

または、小数点以下の2桁までGB単位でサイズを計算し、「GB」文字列を追加します。

$ stat -f /tmp --printf '%S %b * 2k 1024 dd**/n [GB]p' | dc
28.83GB

この作業に使用したいプログラミング言語によっては、statfs直接ラッパーを使用することも可能です。

関連情報