Ubuntu(Linux)で簡易NAS Navigatorを作成(LinkStation自動起動サービス)

Ubuntu

NAS Navigatorを作成、といってもUbuntu起動時に定期的にWake On Lanのコマンドを発行するサービスを作成しただけです。これでLinkStation(AUTOモード機能付き)が自動起動します。

NAS Navigatorがやっていること

前回、Wake On Lanコマンドを発行することでLinkStationが自動起動することは実証済です。そのままだと5分ほどしてLinkStationが自動でOFFになるため、定期的にWake On Lanコマンドを発行する必要があります。Nas Navigatorも同様にWake On Lanコマンドを定期的に発行していると思われます。

前回はwatchコマンドを使い実現しましたが、この方法だと端末(コマンドプロンプト)を立ち上げる必要がありました。動作自体に何ら支障はありませんが、見栄えが今ひとつです。

今回はWake On Lan コマンドの発行をサービス化し、裏の見えないところで定期的に発行することを目指しました。

LinkStation自動起動(Wake On Lanコマンド発行)のサービス化

wakeonlanのインストール

まずwakeonlanコマンドが使えるようにwakeonlanパッケージをインストールします。

1$ sudo apt install wakeonlan

これでwakeonlanコマンドが使えるようになりました。引数にLinkStationのMACアドレスを指定する必要があるので、Windows等でNas Navigatorを起動し調べておきます。

Nas Navigator MACアドレス

crontabの利用

定期的にタスクを実行するためcrontab機能を使います。”crontab -e”でcronを設定するエディターが開きます。

1$ crontab -e

私の環境では「エディターを選べ」と訊いてきたので「一番易しい」、と指定されているnanoを選びました。

Select an editor. To change later, run 'select-editor'.
/bin/nano <---- easiest
/usr/bin/vim.tiny
/bin/ed
Choose 1-3 [1]: 1

nanoエディタにcrontabの内容が表示されます。初めて利用したので、中身はcronを説明しているコメントのみです。

最後の行に”*/3 * * * * wakeonlan XX:00:YY:11:ZZ:22″を追加します。

GNU nano 4.8 /tmp/crontab.vx97mT/crontab
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
  …(中略)…
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

*/3 * * * * wakeonlan XX:00:YY:11:ZZ:22

1つ目の”*/3″は「分」のパラメータで、「3分毎」の意味になります。”*”は無指定(any)です。

(分:1~59) (時:0~23) (日:1~31) (月:1~12) (曜日:0~6) (コマンド)

の順にパラメータを指定します。”wakeonlan XX:00:YY:11:ZZ:22″がコマンド部分になります。”XX:00:YY:11:ZZ:22”はLinkStationのMACアドレスです。

「月日、曜日、時間に関係なく(*)、3分ごと(*/3)に”wakeonlan XX:00:YY:11:ZZ:22″コマンドを発行せよ」という設定です。

nanoエディタは”Ctrl+o”で書き込み、”Ctrl+x”で終了します。編集した内容は/tmp/crontab.vx97mT/crontabとして保存されるようです。

これでUbuntuを再起動すると3分おきにwakeonlanが発行されます。

動作確認(cron実行ログ確認)

Ubuntuを再起動後、以下のコマンドでcronの実行結果を確認できます。

1$ less /var/log/syslog | grep CRON

以下のように3分ごとにwakeonLanが実行されているのが分かります。

Nov 23 12:33:01 user-linux CRON[3655]: (user) CMD (wakeonlan XX:00:YY:11:ZZ:22)
Nov 23 12:33:01 user-linux CRON[3654]: (CRON) info (No MTA installed, discarding output)
Nov 23 12:36:01 user-linux CRON[3702]: (user) CMD (wakeonlan XX:00:YY:11:ZZ:22)
Nov 23 12:36:01 user-linux CRON[3701]: (CRON) info (No MTA installed, discarding output)
Nov 23 12:39:01 user-linux CRON[3805]: (user) CMD (wakeonlan XX:00:YY:11:ZZ:22)
Nov 23 12:39:01 user-linux CRON[3804]: (CRON) info (No MTA installed, discarding output)

LinkStationの接続

wakeonLanの実行によりLinkStationは自動で起動されます。あとはsambaを使って接続すればLinkStationが使えます。

samba接続の方法は以下を参照してください。

まとめ

Linux用のNAS Navigatorはリリースされていませんが、crontabを利用しwakeonLanを定期的に発行することで、NAS Navigatorをインストールした時と同様に、Ubuntuを起動するとLinkStationのスイッチが自動でONになり、使っている間はLinkStationが勝手にOFFにならないようにすることができました。

コメント

タイトルとURLをコピーしました