web-dev-qa-db-ja.com

logrotateを使用したファイルの1時間ごとのローテーション?

/ tmp/hr_logs /にあるログファイルのログローテーションを設定しようとしました。セットアップには、Linuxでlogrotateを使用し、/ etc/logrotate.confで次の構成を使用して毎日回転できます。

  /tmp/hr_logs {
  daily
  rotate 4

この構成を使用すると、ファイルは毎日ローテーションされ、システムはログファイルの4つのコピーに日付を追加して保持します[形式:-YYYYMMDD]

今、私は時間単位でローテーションする必要があるログファイルの異なるセットを設定しようとしていますが、そのためにlogrotate.confで設定を行いました:

  /tmp/last_logs {
  hourly
  rotate 4

しかし、これはまったく機能していませんか?誰でも私にこれを教えてくださいますか?

56
Kishore

logrotate.confのマンページには、hourlyオプションに関する重要なアドバイスが含まれています。

ログファイルは1時間ごとにローテーションされます。 通常、logrotateは毎日cronで実行されるように設定されていることに注意してください。ログを実際に1時間ごとにローテーションするには、この構成を変更してlogrotate hourlyを実行する必要があります。

yellow1pl で指摘されているように、解決策はファイル/etc/cron.daily/logrotate/etc/cron.hourly/ディレクトリにコピーすることです。これは、少なくともDebianおよびおそらく一部のDebian派生製品で機能します。

78
scai

毎日のlogrotates用の/etc/cron.daily/logrotateスクリプトがあります。ただし、/etc/cron.hourly/ディレクトリにはデフォルトでそのようなスクリプトはありません。このスクリプトをコピーすると、正常に機能するはずです。

18
rsm