Home > check*pad関連 Archive

check*pad関連 Archive

業務連絡・・・

すみません、R*PADでメールの遅延が起きていたようです。昨日の夜から復旧作業をして現在安定稼動中です。ご迷惑をおかけして申し訳ありません・・・。

【業務連絡】 R*PAD、復旧しました

数日落ちていたR*PADですが、無事に復旧しました。なくなったデータはないはずです・・・。ご迷惑をおかけして申し訳ありません。リマインダーサービスが落ちていたら意味ないですよね・・・ごめんなさい。

それから今回のメンテナンスで行ったことをまとめておきます。

  • 新しいサーバーへの移行を行いました。前のサーバーは不安定だったのでこれでだいぶよくなると思います。
  • 文字コードのUTF8化。以前はもう、なんというか、ぐちゃぐちゃなコードだったのでこれでメンテナンスしやすくなりました。
  • コードのリファクタリング。
  • virtusertableを使ってメール処理を最新化。

以上です。データのバックアップ機能をはじめ、まだまだなんとかしたい部分がありますのでおいおい・・・。

» スケジュール管理ツール - rpad.jp

【業務連絡】 R*PAD落ちています・・・

業務連絡です。リマインダーツールのR*PADですが、現在メンテナンス中です。ご迷惑をおかけして申し訳ありません。データがなくなったり、とかそういうことはありませんのでご安心ください。ただ、もうしばらくかかりそうです。また報告します。

check*padの復元データについて

check*padの障害に関するアップデートです。14日~18日のデータですが、サーバー会社のご協力もあり、破損したハードディスクからなんとか復元することができました(お待たせしてしまい、大変申し訳ありません・・・)。

つきましてはログイン後に「障害中の更新履歴」をご確認ください。

cp_1.gif

↑ ホーム画面のお知らせ部分にリンクがあります。

cp_2.gif

↑ 復旧したデータはこのような表で提供させていただきました・・・。

本来ならば差分データを直接入れ込むべきですが、すでに日数が経過しているため、混乱をさけるためにこのような形式にさせていただきました。大変お手数ですが、この情報をもとに必要な項目を再度入力していただけますでしょうか・・・。本当にごめんなさい。

また14日~18日に新規登録された方についてはデータをシステム上に読み込むとさまざまな不整合が起こる可能性が高いので、個別にメールさせていただきました。メールに登録された情報を記載しておきましたので、そちらをご利用いただければと思います。

今回の騒動ではユーザーの皆様に多大なご迷惑をおかけしました。今後このようなことのないように保守体制を強化していきます。

今回は本当に申し訳ありませんでした。今後ともどうぞよろしくお願いいたします・・・。

PHPとsendmailで任意のメールアドレスに来たメールを処理する方法

check*padのサーバー騒動でまとめたくなったので自分メモも兼ねてまとめてみます。これがわからなくてちょっとはまったので・・・。

■ やっていることの概要

check*padではリストごとにxxxxxxxxxxxxxxxx@checkpad.jpなるアドレスを発行し、そこにメールを送ると本文を解析してTo Do項目を追加してくれます。このように@checkpad.jp以前が可変の場合、どのように処理するかの説明です。

■ 作業手順

では順を追って作業を見ていきます。

  1. /etc/aliasesを変更
  2. まず、ダミーのアドレスをつくり(この場合、madd)、/etc/aliasesに追加します。追加する際にはPHPのプログラムにパイプするようにします。

    madd: "|/usr/bin/php -f /home/hogehoge/checkpad.jp/foo/process_mail.php"
    

    追加したあとはnewaliasesを忘れずに。

    ※ ちなみにメールアドレスの@以前が不変の場合、この一行でPHPにそのまま渡せます。

  3. smrshにリンクを追加
  4. sendmailのシェルがPHPにアクセスできるように以下のように設定。

    #ln -s /usr/local/bin/php /etc/smrsh/php
    
  5. sendmail.cfの変更
  6. 次に/etc/mail/sendmail.cfを変更し、定義されていないメールアドレスにメールが来たらどこに飛ばすかを設定します(この場合、maddに全部飛ばしています)。

    参考にしたのは「Configuring sendmail on Solaris 7 and Solaris 8 to accept incoming email」(赤松さんに教えてもらいました、感謝!)。

    作業は二つほど。

    • 変更その1
    • 以下のコードの直下に、次のコードを挿入。

      # "Smart" relay host (may be null)
      DSyour ISP's smart mail host
      (の直下に次)
      # place to which unknown users should be forwarded
      Kuser user -m -a<>
      # deliver mail for unknown users to postmaster locally
      DLlocal:madd
      

      maddの部分は適宜変えてください。

    • 変更その2
    • またしてもコード追加。

      ###########################################################################
      ###   Ruleset 5 -- special rewriting after aliases have been expanded   ###
      ###########################################################################
      (中略)
      # prepend an empty "forward host" on the front
      R$+     $: <> $1
      (の直下に次)
      # send unrecognized local users to a relay host
      R< > $+     $: < $L . > $(user $1 $)  look up user
      R< $* > $+ <> $*  $: < > $2 $3      found; strip $L
      R< $* . > $+    $: < $1 > $2      strip extra dot</pre>
      
    これでサーバー側の設定は終了。sendmailを再起動しておきます。
  7. さて、PHP
  8. では次に最終的に処理をするprocess_mail.phpを書いていきます。ざっくりコードはこんな感じ。
    // 標準出力から読み取り
    $fd = fopen("php://stdin", "r");
    $email = "";
    while (!feof($fd)) {  $email .= fread($fd, 4096);  }
    fclose($fd);
    // TO:アドレスの取得
    if (preg_match ('/[\n\r]To:.*([a-f0-9]{32})'.’@checkpad.jp'.'/', $email, $matches)) {
      $to_address = $matches[1];
    } else {
      mail ("me@mail.com", "Failed to capture mail", $email, "From: me@mail.com");
      exit;
    }
    // 件名、本文の抽出
    $maildata = preg_split ("/\n\n/", $email); // $maildata[0]が件名、[1]が本文
    // あとはこれらのデータを使ってごにょごにょ・・・。
    

    ↑ あ、ちょっと違うな。@以前のメアドはこの場合、32桁の英数字に限定ですね・・・ま、そこらへんは各自で工夫してください。

    なんかPEARとか使うともっとスマートにいくっぽいですが・・・ご容赦を。なんか正規表現gdgdっすね・・・。

  9. テスト
  10. あとはメールを送ってみてテストします。tail -f /var/log/maillogをみながらちゃんとメールが受け取られているかをチェックしましょう。

    なお、unknown mailer errorとか出たらPHPにバグがある可能性大です。ウォッチポイントを設定してログを吐き出したりしつつ、ちゃんとデバッグしましょうね。

以上、簡単に説明してみました。うまく動いているのであまり考えていないのですが、もしかしたらもっとスマートな方法があるのかもしれません・・・あれば是非教えてください。

check*padに「テキストでデータをダウンロード」機能を追加

全てのデータをテキストでダウンロードできる機能を追加しました。データのバックアップにご活用ください。

checkpad_dl.gif

↑ メニューの設定変更画面からいけます。

現在、データがあまりに多くなりすぎるとメールで送信する際に途中でデータが切れてしまう、という不具合が報告されています(現在調査中)。その対策としての機能追加です。

メールよりもテキストの方がトラブルが起こる可能性が低いので、「メールで送信」機能は今後廃止する方向で考えています。

あとはバックアップ体制の強化とデータの復旧ですね・・・。はやいところ落ち着かせたい。

check*padの現状について

先日からのcheck*padの障害についてもろもろご報告です。

■ 14日~18日のデータについて

もっともご迷惑をおかけしている、なくなったデータについてですが、現状および今後の予定は以下のとおりです。

  • 現在サーバ会社に故障したHDDからのデータバックアップを依頼中。うまくいけばバックアップできますが、うまくいかない可能性もあるとのこと。来週前半ぐらいには結果が出るかと思います。
  • もしバックアップがとれなかった場合、データは物理的に失われてしまい、復旧の手立てはありません・・・大変心苦しいのですが、この場合、謝罪をさせていただく以外、何もできることがございません・・・。
  • もしデータがバックアップできた場合、14日~18日のデータを切り出し、なんらかの形でユーザーへお戻しします。稼動中のシステムをとめてデータの差分を入れ込むことも不可能ではないですが、技術的な問題で時間がかかりそう、かつ、リスクが多少あるので、テキストファイルなりでお戻しすることになるかと思います。

■ モバイル版で文字化け

18日からモバイル版で文字化けしていましたが、現在復旧しております。

■ モーニングリスト

モーニングリストの配信も今日より再開いたしました。

■ info@checkpad.jpへのメール

info@checkpad.jpへのメールも届くようになりました。

■ メールで項目追加機能

メールでTo Do項目を追加する機能も復旧しております。

■ 今後のTo Do

今後行う作業は以下のとおりです。もうしばらくご迷惑をおかけしますが、どうぞご理解ください・・・。

  • 失われたデータの復旧(HDDからデータバックアップできた場合・・・)
  • バックアップ処理の高速化、監視体制の強化。
  • 「全データをメールで送る」機能において一部不具合があるので修正(データが大量の場合、途中で切れてしまいます)。

以上、取り急ぎ現状のご報告です。今回は大変申し訳ありませんでした・・・。

check*pad障害報告・・・

ご迷惑をおかけしているcheck*padですが、現在携帯版で文字化けが発生しているようです。原因を究明中ですのでもうしばらくお待ちください。

check*pad暫定復旧のお知らせ

今朝から障害がおきていたcheck*padですが、暫定的に復旧いたしました。DNSの切り替えがありますので、まだつながらない方もいらっしゃるかと思いますが、今から数時間以内にはご利用になれるかと思います。

なお、今回の復旧に関し、以下をよくお読みの上、ご活用ください。

■ 復旧したもの、復旧していないもの

今朝もお知らせしましたが、完全な復活は現状では困難でした・・・。現在、以下のような状況です。

  • データは14日午前4時にバックアップされたものを復旧しました。14日4時以降のデータは現状復旧できておりません・・・申し訳ありません・・・。
  • メールでの項目追加機能が動いておりません。ご注意ください。
  • モーニングリスト機能も動いておりません。
  • info@checkpad.jpアドレスが不通になっています。ご連絡は webmaster@100shiki.com までお願い致します。
  • 携帯版にて文字化けが起こっております。(1/18に追記)
  • その他、予期せぬ不具合が起こる場合がございます。ご了承ください・・・。

■ バックアップをお願い致します

check*padでは、「設定変更」画面より「全データを自分に送る」機能がございます。その機能を使って現時点でのすべてのリストを自分あてにメールしておかれることをおすすめします。

■ 登録解除について

今回の件ではユーザーの皆様に大変な迷惑をかけてしまいました・・・登録解除につきましては「ヘルプ」画面よりリンクを辿っていかれるとございます。ご希望の方はそちらもご活用ください。

■ 今後の予定について

今後の予定については週末中に計画を立ててお知らせします。

今回は大変申し訳ありません。また落ち着いたらまとめて報告します。

» check*pad

check*padに関する重大なお知らせ

先日から障害の起きていたcheck*padですが、現在サーバーのハードウェア故障により稼動しておりません。ご迷惑をおかけしてしまい、大変申し訳ありません。現在復旧に向けて作業中です。

■ 今までの経緯

現在までのおおまかな経緯は以下のとおりです。

  • 2008-01-15 午前4時ごろ、サーバーが停止。サーバーの再起動をかけて復帰。
  • 2008-01-16 午前4時ごろ、サーバーが再度停止。再起動をかけるが、HDDに障害が発生していることが判明。ディスクチェックをかけて復帰。データベースのバックアップ処理にかかるが、HDD障害のため失敗。負荷の少ない時間帯にて何度か試みるも失敗。
  • 2008-01-17 データベースのバックアップ処理の対策を講じる。代替サーバーの準備。
  • 2008-01-18 データベースのバックアップを再度試みるが失敗。HDD故障によりサーバー停止。HDDのハードウェア交換と同時にデータバックアップをサーバー会社に依頼。同時に代替サーバーにcheck*padのプログラムおよび、1月14日時点でのデータを移行、テスト予定。

■ 予想される影響

今回のHDD故障により、以下の影響が予想されます。

  • check*padの移行作業に伴い、18日から週末にかけてcheck*padがご利用できない可能性がございます。復旧予定は現在のところ不明です。
  • データに関しては2008年1月14日移行のデータを移行中です。15日~18日のデータについてはHDD交換の際のバックアップ作業で復旧する可能性がありますが、失われる可能性もあります・・・。

■ 緊急のお問合せ先

緊急のお問い合わせは webmaster@100shiki.com までお願いいたします。

■ お詫び

先日からのサーバー障害がこのような最悪の事態になってしまい、大変申し訳ありません。現在データの復旧中ですが、上記の理由によりすべてのデータを回復できない可能性もございます。本当に申し訳ありません・・・。今後の作業進捗についてはブログにてお知らせいたします。もうしばらくお待ちください。

Home > check*pad関連 Archive

ケータイ会議4
最新の投稿
アーカイブ
カテゴリー別
イベント情報

Return to page top