logrotateは、異なるファイル名を持つログファイルから圧縮アーカイブを生成します。

logrotateは、異なるファイル名を持つログファイルから圧縮アーカイブを生成します。

/var/USER/mylogs以下の形式の毎日のログファイルを含むログフォルダがあります"DATE-mylogile.log"。日付形式はです"%d-%m-%Y"

したがって、私のフォルダには次のログファイルがあります。

12-01-2024-mylogfile.log
13-01-2024-mylogfile.log
14.01-2024-mylogfile.log
...

今、logrotateを使ってログを回転させたい。私のテスト構成は次のとおりです。

/var/USER/mylogs/*.log {
weekly
rotate 4
compress
missingok 
dateext 
dateformat -%d-%m-%Y
}

ただし、logrotateが実行されると、各ログファイルに対してgz-Archiveが生成されます。たとえば、次のようになります。

12.01-2024-mylogfile.log-12-03-2024.gz
13.01-2024-mylogfile.log-13-03-2024.gz
14.01-2024-mylogfile.log-14-03-2024.gz

しかし、logrotateでその注意すべての個々のログファイルを含むgz-Archiveを毎週作成し、次のようにgz-Archiveが1つだけあるようにします。

mylogfile.log-14-03-2024.gz

ところで詰まっています。これは可能でしょうか?どうすればいいですか?

答え1

もっと調べたところで投稿を見つけました。サーバー障害答えが提供される場所。

したがって、ファイル名に時間/日付を含むログは回転できません。 logrotateは毎回同じログファイルを使用するように設計されており、アプリケーションはその単一のログファイルに書き込みます。

リンクからの回答サーバー障害郵便はがき:

「名前に日付を含むファイルを作成した場合、logrotateは答えではありません。これは、アプリケーションが常に同じログファイル(/var/log/app/output.log.logなど)に書き込まれるというアイデアに基づいています。その後、logrotateはファイル名を再指定または圧縮し、アプリケーションに元のターゲットファイルを再度開くように指示します。

関連情報