ラック
Home > ブログ > 記事 > 2015年3月 > anacronとは

anacronとは

カテゴリ: Linux

古いバージョンでcronで実行させてた処理があって、それをそのまま新しいバージョンのcronにコピペしたら、1日に2回処理が走るという???な状態に陥りました。そして通知メールの片方は、cronからではなく、anacronからでした。…お前は何者だ!

で、調べてみたら上記のような感じ。新しいバージョンは日次・週次・月次処理はcronではなくanacronで行うようになったとのこと。cron.dailyの場合、デフォルトだと3~22時の間で、5分遅延した後(6分プラスして)、さらにその後ランダムで0~45分経過したときにcron.dailyディレクトリ以下の処理を実行する。

…毎時1分にチェックを行うので、その日の中では3:01に初めてチェックが走る。で、前回処理から日がずれていると、5+6=11、5+45=50なので11~50分遅延、つまり3:12~3:51の間にcron.dailyの処理を行う(と思う。理解しきれてないので間違えてるかも)。

…確かに処理完了のメールは3:12以降ですよ、ええ。でもって、日次処理は毎朝早朝に走っているので、anacronがチェックを走らせる3時の時点では「前日に処理を行った後、まだcronが処理を行っていない」状態なので、anacronによる処理が実行される。

結果、3時代ランダムな時間と、cronで指定した早朝の時刻と2回cron.dailyの処理が走って、通知メールが2通来る、という状態になっていたようだ。…なんて面倒な!

対策:anacron消せば良いんじゃね?という回答。

確かにそうなのですけど、完全に削除してしまうのもなぁ…ちょっと不安。ということで、/etc/anacrontabの日の間隔を1から2に変更。これで様子を見てみよう。

…どうやら騙しきれていなかったようです。

仕方ないので参考記事通り、anacronを削除することにしました。パッケージ依存の関係があるので、「anacronを使用しないcronのインストール」→「anacronのアンインストール」の順番で行う。

yum -y install cronie-noanacron
yum -y remove cronie-anacron

これでまた様子見。

タグ: サーバ環境・構築

 



関連する記事一覧