yyの日記

大気海洋に関する研究の個人的備忘録です。

サーバー上のディスクをマウントするのを自動化

普段、オフィスのある建物内からだけアクセスできるサーバーに大きなデータをおいている。小さめの計算や、図等をインタラクティブにチェックする作業の際は、サーバーのディスクを手元のPCにマウントして使っている。ただそのときに、手元のマシンを再起動させたりすると再マウントがめんどくさい。そこで、そのあたりの作業を全部起動時に行うようにした。


  • やりたいこと サーバー(SERVER)上のあるディレクトリ(s_dir: 絶対パス) をnfsマウントで、あたかも外付けHDDを繋いだ時のように扱う。 OSはmac OS High Sierra (ver. 10.13.4)

1 マウント用のディレクトリ作成

外付けHDDを繋いだ時のように使いたかったので、ローカルマシンの/Volumes以下にディレクトリを作成。

sudo mkdir /Volumes/dir

2 nfsマウント

マウントは以下のようにする。

sudo mount_nfs -P SERVER:s_dir /Volumes/dir

3 (好みで)sudo時にパスを求められないようにする

sudo時にパスワードを入力がめんどくさかったので、以下の設定をした。 セキュリティ的によくない気がするので実行には注意(私は後からこの設定はやめました)。

visudoでできる。viによる編集。

sudo visudo  

3行目を追加。名前は自分のユーザー名にすること。

root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL
hoge ALL=(ALL) NOPASSWD: ALL #この行を追加。hogeは自分のユーザー名

4 ~/.bash_profileに記述

ログイン時にディレクトリがなければ、ディレクトリ作成、マウントをするように、1,2の手順を以下のように記述(ログインシェルがbashの場合のみ)。

if [ -e /Volumes/dir ]; then
    echo "Data dir -> /Volumes/dir"
else
    echo "nfs_mount SERVER:s_dir to /Volumes/dir"
    sudo mkdir /Volumes/dir
    sudo mount_nfs -P SERVER:s_dir /Volumes/dir
fi

これでターミナルを開いたら勝手にディスクがマウントされて楽です。