cronとanacron
cron
- 日付・曜日・時・分の粒度で指定時刻にジョブを実行
- 指定時刻にサーバが停止していたなどで、実行しなかったジョブを再実行する機能はない。
- 次回の指定時刻まで待つ必要がある。
- /etc/crontab, /etc/cron.d/以下のファイル, 各ユーザのcrontabファイル(crontabコマンドで設定)など、複数のジョブ設定場所がある。
- デーモンプロセス(crond)が常駐して指定時刻にジョブを起動する。
anacron
- ジョブの実行間隔を1日単位で指定する。
- したがって、ジョブの実行頻度は、1日1回以上には設定できない。
- ジョブの実行時刻を明示的に指定する機能はない
- ジョブの設定場所は、/etc/anacrontabのみで、rootユーザ以外はジョブの設定はできない。
- ジョブの実行タイミングにランダムな遅延を挿入することが可能で、複数サーバで同じ時刻に一斉にジョブが起動する問題を回避できる
- 仮想マシン環境で、時々、はまるポイント
- 指定時刻にサーバが停止していたなどで、実行しなかったジョブを再実行する機能がある(というか、そのような使い方ができる。)
デーモンプロセスは存在しないので、定期的にanacronコマンドを実行する仕組みを別途用意する必要がある。
- anacronコマンドを実行したタイミングで、実行するべきジョブがあれば、それを実行する。
ジョブの実行を許可する時間帯を"START_HOURS_RANGE"で指定するようになっている