好奇心の轍

脳・心・人工知能といった、よくわからんものを研究するふりをしながら、日々と人生についてつらつらと考えている「たっきー」のブログです。
カテゴリ一覧:

2005/01/09 (Sun) ご迷惑をおかけしました

ご迷惑をおかけしました

数日間サーバーが停止いたしまして本当にご迷惑をおかけしました。

ハードディスクコントローラの調子が悪いようで、いったんリセットしたのですがすぐまたおかしくなってしまいました。しかも、2度目の機能停止が妻と一緒に札幌に来た直後で、リセットボタンを押せない限りこっちからは手の出しようがない状態になってしまいました。今日、妻が帰京したので、ようやくリセットしてもらった次第。

自宅サーバーはこういうときが厄介ですね。どこか人がいるところに置かせてもらえればいいのだけど。

今後はできるだけ早く手を打って、ダウンタイムを短くするよう努力します。ほんとうにすみません。

[ネット] 自宅サーバーがトラブルの時の代替サーバー設定

サーバー停止時の最大の問題は、メール不達です。短期間ならいいけど、96時間を越えるとサーバーの設定によってはあきらめて差し戻されてしまう可能性があります。また、動的IPの場合は、たまたま同じIPを取ったほかのマシンがメールを受け取り拒否してしまうこともあります。

今回は ADSL ルータは無事だったし、そもそも asahi-net で固定IPにしているので、ほかのマシンが勝手に・・・という可能性はなかったのだけど、リセットできるまでの時間が100時間を越えることがわかったので、受け取れないメールが発生する可能性がありました。回避のため、急遽手持ちの Windows マシンを中継メールサーバーに仕立て上げました。今後の参考にそのときの方法をメモしておきます。

  • dyndns クライアントをインストール。代替サーバになるマシンの IP を DNS 登録
  • cygwin で exim、apache をインストール
  • /etc/exim.conf を編集。中継先ドメインを domainlist relay_to_domains = snowelm.com : *.example.com と記述。begin retry セクションの F,4d,6h を F,7d,6h に変更 (7日間まではメールを保持)。exim-config を実行してサービスを起動。
  • firewall に穴を開ける。外部から telnet で smtp を叩いて、希望するドメインだけ中継することを確認。
  • DNS の設定を変えてこのマシンをバックアップメールサーバに追加。www サーバにも設定。
  • /var/www/htdocs の下のデフォルトページを消して、謝罪の仮ページを設置。index.html.ja.jis とかしておいておく。
  • /etc/apache/apache.conf に ErrorDocument 404 /index.html.ja.jis と書く。これで、ファイルなしエラーのときのメッセージも謝罪メッセージになる。
  • メールは /var/spool/exim/input にたまる。本来のメール処理の機能はないわけだが、とりあえず中身を覗くためのコマンド。本来は1行です。プライバシーには注意。
$ ls *-H | perl -e '@ls=<>; foreach $f(@ls) { chop $f; 
open(I,"<$f"); while(<I>){print if($_ =~ / (To|From|Subject|Date): /i);} close(I);
$f=~s/-H$/-D/; open(I,"<$f"); while(<I>){print;} close(I); print"\n.\n\n"}'
| nkf -s >~/maildata.txt

これでメインサーバー復活までしのぎました。メインサーバー復活後は自動的にたまったメールをメインサーバーに流してくれます。それまで、メール送信者には delayed for 24 hours などとメールを送ってしまいますが、それはどうしようもないのであきらめ。

今回はたまたま代替サーバーを気楽に立てられる環境だったのでよかったけど、海外旅行中に起きていたらと思うとぞっとします。管理方法をもうすこし考えないとなぁ。

本日のコメント(全1件) [コメントを入れる]
天照 (2005/01/13 (Thu) 10:56)

サーバーの復旧作業お疲れ様でした。