Debianサーバーを自動起動/自動シャットダウンさせる

linux, サーバー関連 2011年2月3日,

このサーバー(sonarsrv.com)がかなりやばくて
電源の音とかガガガガガガガって言ってるし、前は通信中に突然応答しなくなったし・・・
そろそろやばい感じ。
やっぱ常時起動のサーバーにスリムケースな奴ってだめだね。

一応今までもバックアップとってたんだけど同一サーバーの別HDDにしてたんですよ。
一回壊れたら実家まで帰らないとデータが取り出せないのは結構きつい
アップローダーとか掲示板にも使ってるしね。

ってわけで、このサーバー、いつ死んでもいいように自宅でバックアップを取る事にした。

自宅には衝動買いしたD510MOがあるのでこいつにDebianをインストールして、
毎日5時くらいにrsyncでデータ同期するようにしました。
まぁそれは順調に終わって毎日更新されているわけですが
1日1回の同期なのに24時間つけっぱなし。MOTTAINAI

ってわけでrsyncの時間くらいに自動で起動して、rsyncが終わったあたりで自動でシャットダウンしてくれないかなー
なんて方法を模索したわけです。

自動起動設定 - BIOSのsystem time が起動する度に狂う

もっとも難しいだろうなーと思うのが自動起動の設定。
それなりのものだとBIOSで起動時間を指定すると自動的に起動させる事ができるらしい。
見てみるとD510MOでも自動起動設定項目が存在しました。

早速BIOSで自動起動の時間を5分後くらいに設定してリブート。
んでDebian立ち上がってからシャットダウン。
ワクテカしながら5分間待ってたんですが・・・起動しない

BIOSの設定を確認してみると
BIOSのsystem time(UTC)が狂ってるじゃないっすか。
手動で修正してまたもやワクテカ5分待ったのですが起動せず、
BIOSをみてみるとまた狂ってました。

何度かいろいろ確認してたところ、Debianを起動しなければ狂う事はない事を発見。
さらに言うと狂った時間は現在時刻の9時間前 となってました。

要はDebianが起動するとBIOSの時間が日本時間の9時間前になる

ここまでわかればちょっと検索するとすぐ原因がわかりました。
Debianは起動時にBIOSとsystem timeを合わせる作業を行っているようです。(/etc/init.d/hwclockfirst.sh)
おそらくは起動時にDebianがBIOSの設定を日本時間にローカライズする前にsystem timeを変更しちゃってるのかな?と予想。
このhwclockfirst.shは/etc/default/rcSで設定されているようです。

同期対象であるUTCをnoにすれば同期先がローカルタイムに変わり、BIOSのズレがなくなりました。

1
2
3
vi /etc/default/rcS

UTC=no

(参考)bnote http://www.bnote.net/kuro_box/debian_date.shtml
———————————————
BIOSに時間起動設定がない場合はWOLなどで別PCから起動させる、という別解もあり。
これもBIOSが対応しているか、って問題がある上に
対象PCにマジックパケットを発行できるPCが存在するかどうかもネック

自動シャットダウン設定

これは簡単。
お手軽にcronに追加しました。

適当なシェルスクリプトを作成。
ここでは /backup/data_lastってファイルが同期により常に変化するのでこれをlsした結果を
任意のメアドに送信した後にシャットダウンするように作ってみた。

1
2
3
4
5
vi /usr/local/hogehoge/halt.sh

#/bin/sh
ls -axl /backup/data_last |/usr/bin/mail sonar@sonarsrv.com -s "BACKUPDETAIL&HALT "`hostname`
halt

これをcronでまわす

1
2
3
4
vi /etc/crontab

#shutdown & report
30 10 * * * root /usr/local/hogehoge/halt.sh

One Response to “Debianサーバーを自動起動/自動シャットダウンさせる”

  1. HIDバルブ Says:

    HIDフォグやバルブの通販はviroodh.com.(hidキット)にお任せください。高品質な商品を低価格で提供し全国送料無料でお届けします。保証hid バラストやテクニカルサポート等アフターサービスも充実で安心です。HIDバルブ

コメントどうぞ