GNU/Linux >> Linux の 問題 >  >> Linux

CentOS の logrotate がランダムに実行されるのはなぜですか?

解決策 1:

重要なのは、CentOS が anacron から /etc/cron.{daily,weekly,monthly} でスクリプトを実行することを知っていることです。 ... /etc/anacrontab RANDOM_DELAY を設定しています 、これは期待どおりの動作をします (最大 RANDOM_DELAY まで遅延します) ジョブ開始の数分前)...

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

設定 RANDOM_DELAY=0 / START_HOURS_RANGE=3 問題を修正しました...

編集

さらに考えた結果、anacron を削除します。 通常の vixie cron をインストールします ...

解決策 2:

答えではありませんが、最近、別の理由でこれを理解しようとしていたところ、Redhat 6、Centos などで cron を実行する方法に関するドキュメントが見つかりませんでした。これが私がリバースエンジニアリングしたものです:

<オール>
  • crond システムの起動時に引き続き実行されます - /etc/cron.d のすべてのファイルをロードします
  • /etc/cron.d/0hourly /etc/cron.hourly のすべてのファイルを実行します
  • /etc/cron.hourly/0anacron anacron を実行します
  • anacron は /etc/anacrontab を読み込みます
  • /etc/anacrontab 実行 (run-parts 経由) ) /etc/cron.daily/etc/cron.weekly/etc/cron.monthly
  • そのため、以前のバージョンよりも複雑です。

    /etc/crontab に時間単位、週単位、月単位のエントリを追加することで、以前の動作を復元することができます。 (今は空です)、しかし anacrontab 更新も必要になります。これにより、将来の更新が中断される場合と中断されない場合があります...

    解決策 3:

    どのようにをカバーする他の回答 しかし必ずしも理由ではない . 理由 同時の毎晩の cron ジョブがインフラストラクチャを停止させないようにすることです。 (共有ストレージ、または 1 つの VM ホストで実行されている 1000 台のサーバー、またはネットワーク サービスにヒットする夜間のジョブを想像してみてください。)

    特定のログ ローテーション ジョブを cron.daily から移動することで、システム固有のログ ローテーションに関するこの問題を常に解決します。 cron.d でハードコーディングされた時刻を持つエントリに .そうすれば、時間は実際には重要ではないが、ログ ローテーションの一貫した時間である updateb などのサービスの実行時間をずらして取得できます。

    もちろん、特定のサイズに達したら、とにかくすべてのログをホストからログサーバーに送信する必要があります。個々のノード上のファイルのローテーション時間はそれほど重要ではありません。利便性(通常はファイルの末尾に従います)または最後の手段としてのフォールバックとして。そうすれば、間違いなく ログ サーバーのローテーションを体系的に設定します。


    Linux
    1. Centos – Centos7ですべてのcronレコードを表示する方法は?

    2. CentOS / RHEL :削除された /etc/passwd ファイルから回復する方法

    3. 1 時間ごとに実行可能ファイルを実行するように cron ジョブを設定する方法は?

    1. find -exec mv {} ./target/ + が機能しないのはなぜですか?

    2. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

    3. `cat /dev/urandom` が端末を破壊するのはなぜですか?

    1. /etc/passwd はグループ内のユーザーを表示しますが、/etc/group は表示しません

    2. /dev/random の dd でファイル サイズが異なるのはなぜですか?

    3. /home、/usr、/var などのディレクトリがすべて同じ inode 番号 (2) を持っているのはなぜですか?