Areca社のRAIDコントローラにはイーサネットが付いており、そこから管理操作などを行うことができる。
コントローラが持つ時計は、起動直後は電源ON時点からカウントされる相対的な時間表示になっている。
この相対的な時間表示は、RAIDコントローラが何らかの手段により現在の時刻情報を得ることができた段階から、普通の時刻表示になる。
「なんらかの手段」というのは「NTPによる時間取得」と「管理画面にブラウザでアクセスした際に、ブラウザが動作しているホストの時刻をJava Scriptを使って取得」の2種類となっている。
つまり、自動的に時刻を合わせる手段というのはNTPを使用するしかない。
しかし、クローズドの環境で使用する場合、どうしても時刻を合わせたいという要求はある。
では、どうするか?
後者の「管理画面にブラウザでアクセスした際に、ブラウザが動作しているホストの時刻をJava Scriptを使って取得」に相当する動作をコマンドで実現し、他のホストから定期的に実行するようにする。
調査した結果、下記のコマンドを実行することで実現できた。
$ curl --user admin:0000 --digest http://IPアドレス/SETTIME --data "TYR=`date +%Y`" --data "TMT=`date +%m`" --data "TDA=`date +%d`" --data "THR=`date +%k`" --data "TMN=`date +%M`" --data "TSC=`date +%S`"
上記はAreca系の標準設定である、ユーザ名「admin」、パスワード「0000」の場合の例である。
これをshell scriptにでもしてから、cronに登録すればよい。