特定のサブディレクトリがどこにマウントされているかを確認するには?

特定のサブディレクトリがどこにマウントされているかを確認するには?

/var/logの一部であると/dev/sda2仮定します。/var/spool/var//dev/sda1

今こんなコマンドを出したい

$ sudo get_mountpoint_of /var/spool

正解を得る。

/var/spool is part of / and is mounted on /dev/sda1

答え1

Linuxシステムでは、次のことができます。

findmnt -nvoSOURCE -T /*some/path

...参照したファイルのソースデバイスのみを印刷します/*some/path


オプション分析:


  • -n

    • 列ヘッダーの省略
  • -oSOURCE

    • のみ選択SOURCEデバイス出力列(他の列もたくさんあります)

    • ,TARGETマウントポイント列を一覧表示するには、追加してください。

  • -v

    • 省略[...]可能な部分/dev/device[/bindmnt]結果
  • -T

    • 報告する前に、有効なマウントポイントが見つかるまで、その引数がfindmnt逆方向に処理されることを示します。--target

より多くの情報を知りたい場合:

man findmnt

答え2

これを行う必要はありませんsudo。開始点に対して 'df'を実行してから、出力からマウントポイントを読み取るスクリプトを作成できます。マウントポイントが「/」でない場合、スクリプトは繰り返しどこにあるかを尋ねます。それインストールされました。

たとえば、私が持っているマシンには次のものがあります。

$ df /var/log
Filesystem                                             1K-blocks     Used Available Use% Mounted on
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd  19751804 12437492   6310948  67% /

通常、スクリプトはディスク情報をLVMまたはudevによって管理できることを認識し(この例では)、詳細を取得する必要があります。それ必要があるかもしれませんsudo)。

OPが提示したケースは確かにより簡単です。同じマシン上のディスクデバイスにファイルシステムがあります。

$ df /users
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sdb1        8255928 5548304   2288248  71% /users

同様に、スクリプトは単に「df」の出力を見て、それが完全なのか重複しているのかを確認し、どこにあるのか尋ねることができます。それインストールされました。

答え3

マウントポイントに関する情報

df -P file/goes/here | tail -1 | cut -d' ' -f 1 

「一部」情報の場合

df /mountpointFromTheLastCommand | tail -1 | awk '{print $6}'

例:

[root@xxx ~]# df -P /root/download/ | tail -1 | cut -d' ' -f 1
/dev/sda2
[root@xxx ~]# df /dev/sda2 | tail -1 | awk '{print $6}'
/

この情報を使用すると、/root/download が / の一部であり、/dev/sda2=] にマウントされていると言えます。

これがまさにアイデアです。必要な出力に合わせて最適化できます。

関連情報