サイズによってlogrotate-cronを変更する必要がありますか?


10

現在のlogrotate構成は次のようになります(logrotate 3.8.7を使用)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

1日に1回は正常に実行されますが、サイズが250Mを超えると回転しません。そのため、サイズに関係なく、1日の終わりまでローテーションします。

私はmaxsizeオプションがあることを読みました、そしてそれを変更size 250Mmaxsize 250Mた後でもまだ動作しません。

1時間ごとにlogrotateを実行するようにcronを設定する必要がありますか?または、がそのファイルサイズをリッスンしているためにlogrotateが自動的に実行され、何か他の問題が発生していますか?

回答:


7

はい、logrotateこれを達成するには、1日に複数回実行する必要があります。これは、manページの秒の段落logrotate(8)で回答されています。

通常logrotateは、毎日のcronジョブとして実行されます。そのログの基準がログのサイズに基づいており、logrotate毎日複数回実行されている場合、-fまたはまたは--forceオプションが使用されていない限り、1日に複数回ログが変更されることはありません。

logrotate毎日ではなく1時間ごとに実行したい場合は、移動できます。

mv /etc/cron.daily/logrotate /etc/cron.hourly

3.8.1以降maxsize。違いsizeとは、maxsizeここで説明されています。

maxsize サイズ

彼らは大きさよりも大きく成長したときにログファイルが(でも、別途指定された時間間隔の前にバイトを回転させてdailyweeklymonthly、またはyearly)。関連するsizeオプションは、時間間隔オプションと相互に排他的であることを除いて同様です。これにより、最後のローテーション時刻に関係なくログファイルがローテーションされます。ときに maxsize使用され、ログファイルのサイズとタイムスタンプの両方が考慮されます。

これはsize、間隔を空けずに、間隔maxsizeも必要な場合の両方に適しています。ただし、これはデフォルトlogrotateで毎日のみ実行されるという事実を変更しません。ほとんどの場合、ログが大きくなるのに1日よりもはるかに長い時間がかかるため、この間隔はほとんどの場合に適しています250M



マニュアルの古いバージョンである@HommerSmithを読んでいたことに気付いてくれてありがとう!私はそれに応じて私の答えを修正しました。
Esa Jokinen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.