ファイル名からマウントポイント、デバイス、LV、VG、PV名を取得します。

ファイル名からマウントポイント、デバイス、LV、VG、PV名を取得します。

相対パス名が与えられた場合、どのように取得しますか?

  • マウントポイント
  • 装備
  • LVM LV名
  • LVM VG名
  • LVM PV名

ベストアンサー1

一般化する

相手が与えられると、$pathname次のコマンドは次の変数を設定します。

$absolute $mount $dev $lv $vg $pvs

絶対パス名

absolute=$(readlink -f "$pathname")

マウントポイントとデバイス

read -r dev mount <<< $(df --portability "$pathname" | awk 'NR==2{print $1 " " $6}')

注:btrfsファイルとzfsファイルシステムは複数のデバイスにまたがる可能性がありますが、ここには1つだけがリストされています。

LVとVG名

read -r lv vg <<< $(sudo lvs -o lv_name,vg_name --noheadings  "$dev")

名前にスペースがある可能性があるため、心配する必要はありません。男 lvm(8)説明する:

VG名とLV名に有効な文字は次のとおりです。a-z A-Z 0-9 + _ . -

ソーラーデバイス

pvs=$(sudo vgs -o pv_name --noheadings "$vg")

VGをホストするPVが複数ある場合があります。

デバイス名に特殊文字が含まれている場合を処理するには、解析を確認してくださいpvs --reportformat json

ボーナス:ループデバイスサポートファイル

backing=$(losetup -lnO BACK-FILE "$dev")

おすすめ記事