Phase B-0 試運転ログ(05-21)— cron が動いていなかった話
どんなズレがあったのか
1. cron が動く時刻がずれていた
設定ファイルには 0 3 * * X と書かれていました。これは「毎週 X 曜日の 03:00 に実行する」という意味です。確認の結果、実際の処理は JST(日本標準時)の深夜 03:00 に動いていた。想定していた時刻ではありませんでした。
VPS(仮想サーバー)そのもののタイムゾーンは JST、この点は問題なし。ただし、VPS の上で動くコンテナ(処理を隔離して動かすための箱のようなもの)の内部タイムゾーンは UTC(協定世界時)のままでした。
まとめると、3 つの層がありました。
- VPS(サーバー本体):JST、問題なし
- コンテナ(内部の処理環境):UTC、日付計算がズレていた
- cron の設定値:深夜 03:00 固定、想定時刻と合っていなかった
2. DB への書き込みが含まれていなかった
cron のスケジュールには「データを取得するプログラム」しか入っていませんでした。取得した後に DB(データベース、データを保存する場所)へ書き込む処理が、スケジュールに組み込まれていなかった。
どう対応したか
物理確認で問題を整理した後、外部監査役の Antigravity に諮問しました。実行・判断・監査を別のエージェントに分けています。
監査の結果、修正方針が確定しました。方針が決まってからは順番通りに進めるだけ。遡って取得できていなかった分のデータを補完し、235 件のレコードが追加されました。
この日から変えたこと
体験から得た気づきを 2 点に整理しています。
「設定済み=正常稼働」は前提にしない
設定したことと、実際に意図通り動いていることは別の話です。設定ファイルの存在確認と、実際のプロセスの照合は定期的にやる必要があります。
環境は 1 枚ではなく、複数の層でできている
VPS / コンテナ / cron 設定値の 3 層がありました。それぞれの層で何が起きているかを区別して確認する習慣が、今後の設計に必要だと判断しました。