webdevqa.jp.net

コマンドラインを使用して、Linuxでハードドライブの合計サイズを取得します。ルート権限はありませんか?

df -hを使用してハードドライブの合計サイズを確認しようとしていますが、各パーティションのサイズが出力され、Sudoが必要です。

Root権限を必要とせずに、コマンドラインを使用してハードドライブの合計サイズを取得する方法はありますか?

16
HVNSweeting

ハックな方法は、次のコマンドでシステムログを読み取ることにより、Sudoの必要性を回避することです。

dmesg | grep blocks

これは理想的ではないかもしれないので、マイレージが異なる場合があることに注意してください...

13
Sirex

バイト単位のサイズが必要で、値のみが必要な場合。スクリプト用:

lsblk -b --output SIZE -n -d /dev/sdX
12220202

-b:バイトで出力します。
-n:見出しなし。純粋な数値のみが必要です。
-出力サイズ:size-columnのみを印刷します。
-d/dev/sdXn:知りたいサイズのデバイス。 Xは、たとえばd、nは、たとえばディスクdの最初のパーティションでは1です。

利点:

  • ルート権限は必要ありません
  • grepは必要ありません
  • lsblkはほとんどのLinuxシステムで利用可能です
5
Sean Loony
cat /sys/block/sda/size

ただし、サイズはブロックベースの単位です
私はこの答えを見つけました ここ
その他のソリューション ここ

または、udisksを試すこともできます

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'
4
Gery

たとえば、スクリプトでその情報を使用したい場合は、

Sudo blockdev --getsz /dev/sda

fdiskやhdparmよりも関連情報のみを提供するため(512を掛けるだけ)、簡単かもしれません。ただし、Sudoも必要です。

もちろん、パスワードを要求せずにこの特定のコマンドを実行できるようにSudoの構成を変更することもできます(通常の非特権ユーザーによって実行された場合でもblockdev --getszはかなり安全だと思います)。

これを行うには、次の行を/etc/sudoersに追加します。

ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*

このファイルを編集するときは、通常のエディタではなく、必ずSudo visudoコマンドを使用してください。そうしないと、構文エラーが発生しやすくなり、Sudoを使用できなくなります(これを修正するには、レスキューモードで再起動する必要があります)。

3
Philipp Wendler

あなたは悪いインストールか不条理に妄想的なシステム管理者を持っています。私はneverdfが以前にroot権限を必要とすることを聞いたことがあります。そして、私はかなり多くの異なる種類のunix/unixに似たオペレーティングシステムを扱ってきました。

とにかく、これですべてのディスクパーティションの合計サイズがわかります(最初のdf列は/dev/hd...または/dev/sd...)ブロック単位(kB):

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s}'

またはGB:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'
1
Dave Sherohman

私は今、Linuxの箱にいませんが、次のことを試してみてください。

hdparm -I /dev/sda

または

fdisk -l

おそらくSudoも必要になるでしょう。

Dfがrootを必要とすることはどこにもありません。それは変です。

1
CaseyB

GnomeとKubuntuからのディスク容量の確認

Disk Usage Analyzerは、GnomeおよびKubuntu環境でのディスク使用量を報告するグラフィカルメニュー方式のアプリケーションです。 DUA(Disk Usage Analyzer)は、ファイルシステムツリー全体またはローカルまたはリモートの個々のディレクトリをスキャンできます。 DUAも動的であり、マウントおよびアンマウントされたデバイスをリアルタイムで報告します。

Gnomeのディスク使用量アナライザーにアクセスするには、次のようにクリックします。

0
Ricky