どのような状況でanacronが実行されていませんか?

どのような状況でanacronが実行されていませんか?

私は方法を知りたいナクロン有効です(Fedoraで)。 3つの関連質問があります。以下の説明が混乱しています。アナクロンタップマニュアル:

START_HOURS_RANGE変数は、スケジュールされたジョブを実行できる時間間隔(時間)を定義します。この間隔を見逃した場合(停電など)、その日にスケジュールされたジョブは実行されません。

最初の主な質問は、「時間間隔がありません」というフレーズは何を意味しますか?

私はソフトウェア時計とハードウェア時計があることを知っています。ソフトウェアクロックはハードウェアクロックによって異なります。。私が知っているのは、停電が長続きする場合は、システムを起動した後にハードウェア時計をソフトウェア時計で調整する必要があるため、ソフトウェア時計は独立して(手動または自動的に)調整する必要があります。

したがって、ここに2番目の質問があります。これは、システムがダウンしている間、そして起動後にアナクロンが実行されている時間内にアナクロンがまだ適切な時間を持っていないと仮定すると、アナクロンがどのように考えているかを意味しますか? ?まだ実行する時間ではないので(実行されません)?

私はanacronがデーモン自体ではないことを知っています。このスタック交換の回答。 〜のようにanacronのFedoraドキュメント状態、anacronジョブはデーモンプロセスによって実行されますcrond。また、anacron ジョブはシステム起動後すぐに実行されることが示されています。

したがって、3番目の質問が出てきます。 2番目の質問に対する答えが「はい」の場合、anacronを実行する前にシステム時間を調整してcrondanacronが実行されるようにすることはできますか?


修正する

例を挙げましょう。 Fedoraでanacronが毎日いくつかのタスクを実行するようにスケジュールしているとしましょう。そして、システムは通常、常に実行されます。私はFedoraが提供するデフォルト設定を維持しましたが、これはanacronが実行されます。ただ3時5分と22時50分の時間枠で(説明書の内容を正確に理解してほしい) - もちろん、システムがこの時間枠で実行されればです。それでは、2時30分から4時30分まで停電になり、Fedoraが4時30分に起動を開始するとします。 crondが通常どおり2分後(4:32)にanacronを実行し、その時点でシステムクロックがまだ正しく設定されていないとします。 Anacronはシステム時計が2時32分に設定されているのを見て、「早ければ3時5分にジョブを実行する計画なので、まだジョブを実行する時間ではありません」と思います。

これにより、その日は実行されないことがわかりました(次の実行は翌日3時5分から始まります)。

もう1つのシナリオ:システム時間がcrondがanacronを実行する1分前の2:31に調整されたとします。 4時32分(今は正確な時間)にanacronを実行すると、anacronは時間を見て「よし、じゃあ私のタスクを実行しなければならない。私の構成で定義されたランダム遅延を待ってからタスクを実行しよう」間のランダムな遅延を待ちます。4:324:37と5:175:22それで私の役割を果たします。

私は正しいですか?

答え1

質問に順番に答えるには:

  1. anacronこの期間中に呼び出されない場合、間隔はありません。スケジュールされていない場合、または呼び出し時にシステムが実行されていない場合は呼び出されません。これは時計に関連しているのではなく、cron時間が実際に実行されているかどうかに関連していますanacron

  2. 呼び出された場合、cronまたは管理者によって呼び出されるとanacron、必要な場合、つまりジョブがファイルに指定された日数以上最後に実行された場合は、スケジュールされた各ジョブを実行しますanacrontab。呼び出されないanacronと、スケジュールされたジョブは実行されません。anacronシステム起動時に実行するかどうかは、ローカル構成によって異なります。

  3. たとえばanacron、ジョブによって呼び出された場合は、cron現在のシステム時刻を確認し、それを各ジョブの保存された状態ファイルと比較します。時間差がanacrontab構成ファイルで指定された作業時間より大きい場合、ジョブはanacron実行されます。

これら3つの答えは本質的に同じです。条件が正しい場合(一定期間にジョブが実行されなかった場合)、そのジョブは anacronそのジョブで実行されます。仕事から始まることが多いです。これは、システムの起動時に、深夜または他の時間(おそらく1日に1回)実行されるタスクです。使用されているLinuxでは、これを別々に呼び出すことができます。実行されなければ、当然何も起こらないでしょう。anacrontabanacroncronsystemdanacronanacron

システムクロックが正しく設定されていない場合は、実行時にクロックがanacronどれだけ間違っているか、およびジョブが最後に実行された時刻によってジョブの実行に影響する可能性があります。

関連情報