ヤマハのルータ NVR500をファイルサーバに その7 自動ロック回避

前回は、 遂にPASS BOX 2.5 を NVR500 に接続し、ファイルサーバとして稼動させることに成功しました。

ヤマハのルータ NVR500をファイルサーバに その6 動いた!

今回は、PASS BOX 2.5 の自動ロックを回避する方法について書きます。

HDD USB HDDケース

Seagate(シーゲート) BarraCuda ST2000LM015 バルク品 (2.5インチハードディスク(HDD)/2TB/SATA)

価格:10,374円
(2018/5/29 13:23時点)
感想(1件)

《送料無料》シンプルPASS BOX 2.5 セキュリティ機能搭載 USB3.0接続 SATA2.5インチHDD/SSDケース CENTURY/センチュリー/ハードディスクケース[CSPB25U3]

価格:2,480円
(2018/5/29 13:20時点)
感想(1件)

 

PASS BOX 2.5の自動ロック機能「オートセーフ機能」

PASS BOX 2.5 には、一定期間アクセスがないとロックされるような自動ロック機構が無いと言うWEBサイト等の説明でしたが、実際に製品を購入し添付資料に目を通すと、このような紙切れが入っていました。

下段のほうに「オートセーフ機能について」と題して、説明があり、10分間アクセスが無いと自動的にロックされるのです。説明には、「ロックされる」とは書いていません、「オートセーフ」と書かれていますが、結局はロックのことです。

この機能は、ファイルサーバとして使う場合は、逆に迷惑な機能です。ロック解除する手段は、物理的に PASS BOX 2.5 のキーボードからパスワードを入力するしかないわけで、ロックされる度にパスワードを入力する羽目になります。これでは、誰か一人ファイルサーバの横に張り付けなければなりません。

NVR500 に cron は無いのか

10分間アクセスがないとロックされるので、10以内に何かしらのアクセスがあればいいわけです。それを人間にやらせるのは、 無理な話なので、ここは賢い NVR500 に頼らなければなりません。UNIX や Linux ならすぐに cron でなんとかしようと頭に浮かびます。ところが NVR500 には cron はありません。似たような機能は無いか、コマンドリファレンスを調べてみると、それらしきものを「31.1 スケジュールの設定」のところで見つけました。 “schedule” と言うのコマンドです。詳しくは、コマンドリファレンスを見てもらうとして、簡単に説明するとこんな感じです。

schedule at id [date] time * command

at: “schedule at” で一つのコマンドと考えてください。省略不可。
id: スケジュール番号
date:月/日   省略時は */* とみなす
time:hh:mm[:ss] 時(0..23 または *) 分(0..59 または *) 秒(0..59)秒は省略可

これは使えそうです。mm のところを cron みたいにカンマ区切りで羅列できれば尚可ですね。だめでも、この “schedule at” を複数書いてやればなんとかなりますね。

ファイルサーバにアクセスするコマンドは無いのか

cron 相当の ”schedule at” は見つけたので、次は、ファイルサーバにアクセスするコマンドを探します。それらしきコマンドとして、見つけたのは、

external-memory batch filename batchfile [logfile]

と言うものでした。書かれている章/項のタイトルは「34.14 バッチファイルと実行結果ファイルの設定」と言うところです。”external-memory batch” で1つのコマンドと考えてください。引数は、2つで、”batchfile” と “[logfile]” です。”[logfile]” は、”[]” で囲われているので、省略可能です。

では、”batchfile” はどのようなバッチファイルなんでしょうか。マニュアルには正直言って何も書かれていません。DOS のバッチファイルなのか、NVR500 専用の文法のスクリプトなのか、何も説明がありません。前者の DOS ってことはまずないでしょうから、後者の方だとここは判断します。ただし、文法が特殊かもしれませんが、やりたいことにはループだの条件分岐は不要なので、ただ単に NVR500 のコマンドを実行して、その結果のログをファイルサーバに書き込んでくれればいいだけです。よって、敷居は低いと勝手に思い込んで話を進めます。

NVR500 用バッチファイルを作る

簡単そうな NVR500 のコマンドを探します。構築中に何度も使ったコマンドとして、”ping” がありました。これを使うことにします。時間をかけて他のコマンドを探す理由もありませんし。

バッチの中身はいたって簡単です。ファイル名は、”ping.bat” です。これを、ご自分のPC上でまずは作成してください。内容は、カスタマイズしてください。

# 拠点Aルータ疎通
ping -c 2 192.168.0.1

# 拠点Bルータ疎通
ping -c 2 192.168.2.1

2拠点とも共通のバッチとして使えるように、両拠点のルータにそれぞれ “ping” を打つようにしました。

これを、ファイルサーバの “¥local” の下にコピーします。これでバッチは完成です。

NVR500 用バッチファイルを登録

続いて、作成したバッチを登録します。”external-memory batch filename” を見つけた項のタイトルは「34.14 バッチファイルと実行結果ファイルの設定」でした。バッチを実行するとはどこにも書いてありません。この “external-memory batch filename” は登録(設定)するだけで実行はしてくれません。実行は後述しますが、また別のコマンドです。

登録するには、ssh 等で NVR500 に入って CLI で作業をするか、WEBの管理画面の [トップ] > [詳細設定と情報] > [コマンドの実行] で次のコマンドを入力します。

external-memory batch filename usb1:/local/ping.bat ping.log

ssh で登録した場合は、”save” コマンドもお忘れなく。

ちゃんと登録できたか確認するには、 管理画面の[トップ] > [詳細設定と情報] > [本製品の全設定(config)のレポート作成] で確認できます。

本当に登録できたか、疑い深い方は、一度 NVR500 の電源を OFF/ON してから[トップ] > [詳細設定と情報] > [本製品の全設定(config)のレポート作成] を確認してください。save を忘れると、OFF/ON で消えているはずです。

バッチファイルのパスは、”usb1:/local/ping.bat” となります。先頭で、外部メモリの位置 “usb1” を指定し、DOS/Windows のフォルダ区切りである “¥” は使わず、UNIX/Linux のディレクリ区切り “/” を使って記述します。

最後の “ping.log” は必ず指定してください。ここのバッチファイルの実行結果を格納します。ここはフルパスで書かなくて良いようです。作成される場所は、バッチファイルと同じフォルダです。つまり、”usb1:/local” の下に作成されます。

私が「必ず指定してください」と言ったのには理由があります。ファイルサーバへのアクセスと言う観点では、バッチファイル自体がファイルサーバに入っているので、実行する度にバッチファイルをリードすると思われるでしょうが、たぶんそれは間違いです。NVR500 には、外部メモリ用にキャッシュメモリを割り当てられるので、このバッチファイルは、運が良ければキャッシュに載って、HDD までアクセスがいかないことが想定されます。夜間などは、間違いなくキャッシュに載ります。

一方、ログファイルの方は、NVR500 のデフォルトのキャッシュ動作では、ライトスルーで動作し、書き込みが発生する度に HDD にアクセスします。よって、PASS BOX 2.5 の自動ロックタイマーの10分のカウントダウンが、ログファイルの書き込みでリセットされることになります。

バッチファイルの動作試験

バッチの登録までは終わりました。これだけではバッチは動かないことは、前述しました。実際に動作させて、ログファイルが出来るか確認します。先ほど同様にコマンドを実行します。

execute batch

これだけです。実行結果は画面には出てきません。ファイルサーバ上にログファイル “¥local¥ping.log” が作成されていれば成功です。

バッチのスケジューリング

出来上がったバッチを定期的に実行するようにスケジューリングします。「31.1 スケジュールの設定」のところで見つけました。 “schedule” を使うんでしたね。

schedule at id [date] time * command

at: “schedule at” で一つのコマンドと考えてください。省略不可。
id: スケジュール番号
date:月/日   省略時は */* とみなす
time:hh:mm[:ss] 時(0..23 または *) 分(0..59 または *) 秒(0..59)秒は省略可

id
NVR500 の中でユニークである必要があります。既に別のスケジューリングが登録されているかもしれません。 管理画面の[トップ] > [詳細設定と情報] > [本製品の全設定(config)のレポート作成]  を辿って、出てきた画面の中の、”# Schedule configuration” を探してください。そこに既存のスケジュールがあれば出てきます。そして使われている “id” も出てくるはずです。使われている番号の最大+1を今回使います。

date
毎月/毎日実行するので、ここは “*/*” を指定します。

time
毎時、10分未満の間隔で起動させます。秒は省略します。
cron ライクに記述するなら “*:0,6,12,18,24,30,36,42,48,54″ になります。8 とか、9 の倍数でも良いですが、最後が一定間隔にならないので、6 の倍数にしています。一定間隔にならないことを特に気にしないのであれば、”*:0,9,18,27,36,45,54″ でも大丈夫です。このカンマ羅列が通用するのかはマニュアルに書かれていません。試してダメなら、スケジュールを”id” を変えて複数登録するまでですが、とにかく試してみましょう。

time の後ろの “*” は何の意味か不明ですが、必須のようです。

”command” には、”ping.bat” を指定したくなりますが、それは不正解です。ここには、”execute batch” を指定します。

まとめると、登録するスケジュールコマンドは、次のようになります。

schedule at 2 */* *:0,6,12,18,24,30,36,42,48,54 * execute batch

登録は、ssh 等で NVR500 に入って CLI で作業をするか、WEBの管理画面の [トップ] > [詳細設定と情報] > [コマンドの実行] で次のコマンドを入力します。これも、既に説明したとおりです。save もお忘れなく。また、登録したら、必ず登録出来たか確認もしてください。

最終動作確認

すべての準備が整いました。あとは、最終的な動作確認です。動作確認は、先に出てきたようにファイルサーバ上のログファイルを見てみます。エクスプローラーで黙って見ていても、ログファイルは更新されないので、適当な時間間隔でマウスの右クリックでメニューを出して、「最新の情報に更新」を実行してください。そして、ログファイルの更新日時が、スケジュールとおりに変わっていたら成功です。

どうでしょうか。みなさんの環境ではうまく行きましたか?  私のところでは、分のカンマ羅列もちゃんと動いてくれました。

これで無事ファイルサーバとして本格運用に入れます。

次回は、2拠点間でファイルサーバの同期をさせる方法について書きます。お楽しみに。

 

HDD USB HDDケース

Seagate(シーゲート) BarraCuda ST2000LM015 バルク品 (2.5インチハードディスク(HDD)/2TB/SATA)

価格:10,374円
(2018/5/29 13:23時点)
感想(1件)

《送料無料》シンプルPASS BOX 2.5 セキュリティ機能搭載 USB3.0接続 SATA2.5インチHDD/SSDケース CENTURY/センチュリー/ハードディスクケース[CSPB25U3]

価格:2,480円
(2018/5/29 13:20時点)
感想(1件)

 


NTTフレッツ光

 

【送料無料】YAMAHA ブロードバンドVoIPルーター NVR500

価格:39,353円
(2018/5/29 13:40時点)
感想(5件)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です