crocodile notebook

feedly feedburner google+ twitter facebook creative commons BY:2.1 プロフィール


as

MacBook Proも軽量なモバイル向け端末もラインアップされ、モバイルルーターやテザリングも容易になったことで、自宅外での無線LAN(Wi-Fi)接続する機会が多いユーザーも増えたと思います。
ボクもそのひとりで、自宅はもちろんWi-Fi、職場でもWi-Fi、モバイルルーターでもWi-Fiと、そこらじゅうでWi-Fi接続をしているわけです。
そして自宅ではファイルサーバー(NAS)をネットワーク上に置いているので、自宅のWi-Fiに接続するときにはNASの共有フォルダと勝手に接続してもらいたい!と思うわけです。

しかし!
MacBook Pro起動時に手軽な方法で自動接続(自動マウント)してくれるように設定すると、Wi-Fiがオンラインになる前に自動マウントしようとしてNG。
自宅以外でもNASに接続しようとして『サーバーがみつかりません』とMacBook Proが諦めるまで待つことにもなる。
場合によっては『何おまえ勝手にサーバーへ接続しようとしてんだよ!』とネットワーク管理者から叱られてしまうケースもあり。

有線LANであれば簡単な自動マウントもWi-Fiだとちょっと面倒くさいこともあるので、それならばと『自宅の無線LAN(Wi-Fi)とオンラインになった場合だけ共有フォルダを自動的にマウントする』なにかを作ることにしました。

160310-0005

今回は『AppleScript』という簡単なプログラムで作成します。
必要なのはMacOSに標準でインストールされている『スクリプトエディタ』だけ。
スクリプトファイル(ZIP圧縮)をダウンロードして、ダブルクリックすればスクリプトエディタで開かれます。

repeat 10 times
    set MySSID to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I"
    if (MySSID contains "SSID名") then
        tell application "Finder"
            try
                mount volume "smb://xxx.xxx.xxx.xxx/フォルダ名/"
                delay 1
            end try
        end tell
        exit repeat
    else
    delay 3
    end if
end repeat

待機時間を設定する

自動マウントの処理が行なわれているあいだ、Macは処理が重くなったり反応がなくなる可能性があります。
そのため、ある程度の時間(回数)で自動マウントを諦めるように設定します。
時間(回数)はお好みで調整可能ですが、初期値の30秒(10回)で接続できない無線LANな、なにか問題が生じている可能性が高いので、さきに無線LANを再起動するなどの対応が望ましいです。

repeat 10 times

 無線LANがオンライン状態となるまでに何回繰り返すかを設定します。
 初期値は10回になります。

delay 3

 無線LANがオフライン状態の場合、3秒後に再確認します。

3秒間隔で10回の状態確認を行い、10回目の確認(OSX起動30秒後)でも指定したSSIDの無線LANがオンラインにならない場合、NASのフォルダをマウントしません。

無線LANのSSIDを設定する

主には自宅のみになると思いますので、自宅の無線LAN(Wi-Fi)に設定しているSSID名を『大文字小文字も間違えずに』設定してください。

if (MySSID contains "SSID名") then

マウントしたいNASにつながる無線LAN(Wi-Fi)のSSID名を設定します。

NASの接続情報を設定する

NASへの接続方法は『smb』と『afp』があります。
接続方法については利用されているNASを確認してください。

mount volume "smb://xxx.xxx.xxx.xxx/フォルダ名/"

AFPで接続する場合は『afp://xxx.xxx.xxx.xxx/フォルダ名』になります。
自動マウント時にユーザー名やパスワードの確認されるのがわずらわしい場合、『移動』→『サーバーへ接続』からマウントしたいNASのフォルダへ接続して、キーチェーンにユーザー名とパスワードを保存すれば自動的にログインされます。

キーチェーンに保存したくない場合『smb://ユーザー名:パスワード@xxx.xxx.xxx.xxx/フォルダ名』とすることで、マウント時にパスワードなどが確認されなくなります。

160310-0003

以上を設定したら、AppleScript編集ウインドウ上部にある実行ボタンをクリックして、NASのフォルダがマウントされるかをテストします。
マウントされない場合『移動』→『サーバーに接続』からマウントできるかを確認して、AppleScriptに記述した接続情報に誤りがないかを確認してください。

160310-0004

正常にマウントできるAppleScriptに仕上がったならば、『ファイル』→『保存』から『アプリケーション』として保存します。

160310-0006

保存したファイルは『書類』フォルダなどに保存して『システム環境設定』→『ユーザとグループ』→『ログイン項目』を開いて、MacOSが起動したタイミングで自動的に実行されるよう登録します。

起動時にFinderメニューバーの表示が崩れる場合、AppleScriptの先頭に『delay 10』と追記してからアプリケーションで保存すると解決すると思います。

マウント後、フォルダに書き込みができない場合はNASへのアクセスが『ゲストユーザー』になっているかもしれません。
その場合は『ユーザー名:パスワード@xxx.xxx.xxx.xxx/フォルダ名』の接続情報にしてください。

応用

このAppleScriptは複数の共有フォルダをマウントすることや、SSID毎に接続するNASを自動的に切り替えることも可能です。
スクリプトファイルのダウンロード(2)

microSDカードを差し込めるモバイルルーターであれば、SDカードをファイルサーバとして自動マウントする、などの使い方もできます。


利用する無線LAN(Wi-Fi)に応じて起動時にマウントするNASのフォルダを切り替えるAppleScript

UPDATE: 2016.03.10
, , , ,




併せ読みに選ばれている
記事はこちらのようです

NASで重要なのはケースではない、ドライブだ!“家庭用NASに最適なHDD”について考えた

NASで重要なのはケースではない、ドライブだ!“家庭用NASに最適なHDD”について考えた

NASには大切なファイルを保存するからこそ、NAS本体だけではなくHDDこそ壊れにくい製品を選ぶのが大切です

家庭用ネットワークHDD『LinkStation LS-V1.0TL』を購入しました!

家庭用ネットワークHDD『LinkStation LS-V1.0TL』を購入しました!

家庭用ネットワークHDD(NAS)LS-V1.0TLを購入しました。 なんのひねりもなくLinkStationにしたわけで、なんのひねりもないレビューです。

MacBook Pro (2009)のHDDを日立Travelstar 1TB / SATA3 7200rpmに交換しました

MacBook Pro (2009)のHDDを日立Travelstar 1TB / SATA3 7200rpmに交換しました

MacBook Pro 990J/AのHDDが容量不足そして老朽化してきたので1TBのHDDに交換しました。交換前後のベンチマークを掲載しています。

Dropboxからの移行先に、日本語環境で利用できるオンラインストレージ5社の年間利用料を比較

Dropboxからの移行先に、日本語環境で利用できるオンラインストレージ5社の年間利用料を比較

DropboxがAmazon S3から撤退するらしいので、品質やコストから今のベストストレージを考えてみました。

高性能NAS『Synology』シリーズをビジネス(個人事業主)にオススメする理由

高性能NAS『Synology』シリーズをビジネス(個人事業主)にオススメする理由

ビジネス用途だからこそ個人用とはちょっと違う品質と性能のNASをオススメしたいのです。

USBストレージを安全に利用するため「TrueCrypt」で暗号化しよう!

USBストレージを安全に利用するため「TrueCrypt」で暗号化しよう!

USBメモリーなどフラッシュメモリーは携帯性が高いため利用しやすいですが、盗難などの危険性も高いです。 そこで内部を暗号化して簡単にファイルを読まれないような対策は重要ですよ!