sudo
の必要性を回避するハックな方法 システム ログを読み取る:
dmesg | grep blocks
これは理想的ではない可能性があるため、マイレージは異なる場合があることに注意してください...
バイト単位のサイズと値のみが必要な場合。スクリプト用:
lsblk -b --output SIZE -n -d /dev/sdX
12220202
-b :バイト単位で出力します。
-n :見出しなし。純粋な数値のみが必要です。
--出力サイズ :サイズ列のみを出力します。
-d /dev/sdXn :知りたいサイズのデバイス。 Xは例えばd, n は、たとえば、ディスク d の最初のパーティションの場合は 1 です。
利点:
- ルート権限は必要ありません
- grep は必要ありません
- ほとんどの Linux システムで lsblk を利用できます
たとえば、その情報をスクリプトで使用したい場合は、
sudo blockdev --getsz /dev/sda
関連情報のみを提供するため、fdiskまたはhdparmよりも簡単かもしれません(512を掛けるだけです)。ただし、sudo も必要です。
もちろん、パスワードを要求せずにこの特定のコマンドを実行できるように、sudo の構成を変更することもできます (blockdev --getsz
だと思います)。 通常の非特権ユーザーによって実行された場合でも、かなり安全です)。
これを行うには、次の行を /etc/sudoers
に追加します。 :
ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*
このファイルを編集するときは、必ずコマンド sudo visudo
を使用してください いつもの編集者ではありません。そうしないと、非常に簡単に構文エラーが発生し、sudo を使用できなくなります (これを修正するには、レスキュー モードで再起動する必要があります)。