crontabがリポジトリとちゃんと同期がとれているかをdeploy時に確認するスクリプト
以前、運用におけるcrontabのテストとParse::Crontabにて、crontabをリポジトリ管理してテストもしているという話をしました。
% crontab data/crontab.txt
などとして本番反映していますが、たまに反映が漏れていたり、本番で一時的に止めたやつがそのままになってしまったりといったオペミスが発生したりします。
そういったオペミスを防ぐために、deploy時にリポジトリ管理しているcrontabとバッチサーバーのcrontabの内容を確認して、差分があったら警告を目立つように出すようにしてみました。そのスクリプトが以下。
赤背景での警告とdiffを出すようにしています。
deploy時にcrontabの反映までやってしまえばいいじゃないかという話もあるかと思いますが、自動反映は逆に怖いというか、深遠な理由により一時的に本番に反映させたくない場合もあるので、警告するに留めることにしました。