Mac のターミナルから、どのサーバーの共有フォルダをマウントしているか確認する（ホスト名の取得）

## マウントされた共有フォルダのリモート（サーバー）名が知りたい

> 異なるサーバーで同じ共有フォルダ名がある場合、どちらのサーバーの共有フォルダをマウントしているか知りたい。

以下は、同じマウント名 `home` でもリモート先の NAS が異なる例です。一見して違いがわかりません。

```php:環境A
$ // NAS-A （MYNAS-01） の共有フォルダをマウントしている
$ ls -la /Volumes | grep home
drwx------@  1 admin  staff    264  1 21 14:22 home
```

```php:環境B
$ // NAS-B （MYNAS-02） の共有フォルダをマウントしている
$ ls -la /Volumes | grep home
drwx------@  1 admin  staff    264  1 21 14:22 home
```

macOS でコマンドライン（ターミナル）から `mount` コマンドで NAS 上の [AFP](https://ja.wikipedia.org/wiki/Apple_Filing_Protocol) 共有フォルダをマウントしようとしました。しかし、**複数の NAS の共有フォルダ名が同じ**ため、`ls /Volumes` だけでは希望するサーバー（NAS）の共有ディレクトリがマウント済みか**一見して判断できないので困った**のです。（macOS Mojave, OSX 10.14.2）

[「`NAS` `共有フォルダ` `コマンド` `マウント` `確認`」で Qiita 記事に絞ってググって](https://www.google.com/search?q=site:qiita.com+NAS+%E5%85%B1%E6%9C%89%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89+%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88+%E7%A2%BA%E8%AA%8D)も Let's samba! な情報しかタイトルから判断できないものばかりだったので、自分のググラビリティ（未来の自分への備忘録）として。

## TS;DR

> **`mount` コマンドでマウント済みの詳細が確認できる**ので `grep` する

```php:MYNAS-02の共有がマウントされているか確認
$ # マウント済みのディレクトリ home とホスト MYNAS-02(AFP) が確認できる
$ mount | grep home
//userB@MYNAS-02%28AFP%29._afpovertcp._tcp.local/home on /Volumes/home (afpfs, nodev, nosuid, mounted by admin)

$ # ホスト名で絞り、存在すれば True=0
$ mount | grep MYNAS-02
//userB@MYNAS-02%28AFP%29._afpovertcp._tcp.local/home on /Volumes/home (afpfs, nodev, nosuid, mounted by admin)
$ echo $?
0

$ # ホスト名で絞り、存在しなければ False=1
$ mount | grep MYNAS-01
$ echo $?
1
```

## TL;DR

自宅と作業場の NAS（QNAP）で、同じ起動スクリプトで BGM を流したり、同じパスで `global` なライブラリが使えるように共有フォルダ名を統一していました。なぜなら私の MacBookPro の空き容量が少ないから。

```shell-session
$ # music, composer,npm, pip3, vagrant が NAS からマウントした共有フォルダ
$ ls /Volumes
Macintosh_HD    Macintosh_SD      music       composer      npm      pip3     vagrant
```

いままで、ログイン時に NAS（QNAP）の共有フォルダを自動マウントさせるために、「システム環境設定」でユーザーの「ログイン項目」にマウントしたいドライブを追加していました。しかし、自宅と作業場で（NAS の）サーバー名が異なるため、各々登録していました。

問題は、メンテナンスや自宅作業が増えた時などに作業場の NAS を自宅に持ち帰ると、なんか２つマウントされちゃうので、気持ちが悪かったのです。また、外出先含め該当する NAS がない環境でマシンを起動時するたびに「ないよ」と毎回エラーが出るのも心臓に悪いので何とかしたいと思いました。

そこで、「[起動時に共有フォルダを自動マウントする][automount]」方法をベースに、自宅／作業場にいる場合のみ該当する共有ディレクトリをマウントさせるようにしました。

具体的には Automator[^automator] のシェル・スクリプトに自宅／作業場の LAN 環境のチェック（NAS などへの PING）を加え、一定の遅延処理後、本記事の確認方法でマウントされたか確認を行い、自動でマウントされていない場合は強制でマウントさせるようにしました。

### 検証環境

- macOS Mojave（OSX 10.14.2）
- `$ man mount | tail -1`
    - `4th Berkeley Distribution June 16, 1994 4th Berkeley Distribution`

## 参考文献

- [「Listing in Terminal the last mounted volume」のコメント](https://apple.stackexchange.com/questions/257666/listing-in-terminal-the-last-mounted-volume/257736#257736) @ StackExchange
  > The last line from the output of `mount` would be the last filesystem mounted.

- [「Backing up Mac external drive to NAS」のコメント](https://community.synology.com/forum/9/post/121090?reply=393056) @ Synology
- 「[Mount AFP volumes from the terminal](http://hints.macworld.com/article.php?story=2001120201020569)」@ MacWorld

- 「[起動時に共有フォルダを自動マウント](https://qiita.com/masdaq/items/440596a851e3e4b25dd2)」@ Qiita
- 「[[macOS] 外部NASを起動時に自動的にマウントする [Sierra]](https://qiita.com/sho7650/items/0fd85fdf3f41bb5fae7e)」@ Qiita

[^automator]: 【Automator】 Mac の GUI で作れるバッチ処理アプリ。<br>「[Automator](https://ja.wikipedia.org/wiki/Automator)」 @ Wikipedia<br>[「Automator」 の Qiita 記事検索](https://www.google.com/search?q=site:qiita.com+mac+Automator) @ Goolge

[automount]:https://qiita.com/masdaq/items/440596a851e3e4b25dd2