logrotate をスケジュールするものは何ですか?

logrotate をスケジュールするものは何ですか?

私は大きなログファイルを作成するプログラムに取り組んでいます。

logrotateで処理したいです。

これは私が設定した構成です/etc/logrotate.d/:

/var/log/myproject.log  {
 hourly
 maxsize 1
 rotate 6
 missingok
 notifempty
 compress
 nocreate
 copytruncate
 su www-data www-data 
}

(/var/log/myproject.log所有者ありwww-data)

コマンド

sudo logrotate -vf /etc/logrotate.conf

そして

sudo logrotate -vf /etc/logrotate.d/myproject

ログを正しく回転させます。

ただし、呼び出した後は/etc/cron.hourly空になります。つまり、logrotate は 1 時間ごとに呼び出されません。

  1. logrotateスクリプトが必ず含まれますか/etc/cron.daily?

  2. スクリプトはログ ファイルの更新頻度をチェックしますか。つまり、logrotateスクリプトがあり/etc/cron.daily、一部のログ ファイルに対して設定を行ったX場合、毎日または毎週ローテーションされるのでしょうか。/etc/logrotate.d/weeklyX

  3. /etc/cron.daily/logrotateにコピー&ペーストするだけでいいのでしょうか/etc/cron.hourly/?カット&ペーストはできますか?

  4. 0anacronにファイルを追加する必要がありますか/etc/cron.hourly/?

  5. 時間ごとのログ記録を有効にするには、何か他の操作を行う必要がありますか?

答え1

  1. いいえ。

  2. からman logrotate:

    Each  configuration  file  can  set  global  options (local definitions
    override global ones, and later definitions override earlier ones)
    

    あ、はい。

  3. 再び、manページから引用します:

    hourly Log files are rotated every hour. Note that usually logrotate is
           configured  to  be  run  by  cron daily. You have to change this
           configuration and run logrotate hourly  to  be  able  to  really
           rotate logs hourly.
    

    したがって、スクリプトを移動する必要があります。cron.daily私のシステムでスクリプトを検査したところ、移動しても問題なく動作すると思います。

関連情報