2017-11-14 16 views
1

ログの回転設定では、特定のログファイルに対して回転が0に設定されています。しかし、ファイルのサイズに達すると、代わりにapplication.log.1を削除してください。回転が0に設定されても、古いファイルを回転させないでログを記録する

ドキュメントごとに、回転を0に設定するとファイルが削除されるはずです。なぜこれが起こっていますか?私はまた、ログの回転は1時間ごとに実行するように設定されていると言う必要がありますが、ログファイルは1時間以内にサイズに達します。したがって、logrotateが1時間ごとに実行されると、old application.log.1が削除され、現在のapplication.logapplication.log.1にロールオーバーされ、新しいapplication.logファイルが作成されます。ファイルの 設定は以下のようになります。

/var/log/application.log 
{ 
    rotate 0 
    weekly 
    size 256M 
    missingok 
    notifempty 
    copytruncate 
    compress 
    delaycompress 
    sharedscripts 
    postrotate 
      reload rsyslog >/dev/null 2>&1 || true 
      /usr/sbin/scalyr-agent-2 stop 
      /usr/sbin/scalyr-agent-2 start 
    endscript 
} 

答えて

0

それは、rotate 0設定にもかかわらず、作成される新しいファイル原因の両方copytruncatedelaycompressのように見えます。古いファイルをただちに削除したいのですが(最初に直接/dev/nullにログオンするのはなぜですか?)、とにかくcompressの設定は必要ありません。あなたが本当にcopytruncateが必要な場合は、作成したファイルを削除するpostrotateコマンド追加

  • は、私は2つのオプションを参照してくださいあなたがcopytruncateを必要としない場合

    /var/log/application.log { 
        rotate 0 
        size 256M 
        missingok 
        notifempty 
        copytruncate 
        postrotate 
         reload rsyslog >/dev/null 2>&1 || true 
         /usr/sbin/scalyr-agent-2 stop 
         /usr/sbin/scalyr-agent-2 start 
         rm -f /var/log/application.log.1 
        endscript 
    } 
    
  • を、それを置き換えますcreate(場合によっては、サービスが独自のログファイルを作成する可能性があります)

    /var/log/application.log { 
        rotate 0 
        size 256M 
        missingok 
        notifempty 
        create 
        postrotate 
         reload rsyslog >/dev/null 2>&1 || true 
         /usr/sbin/scalyr-agent-2 stop 
         /usr/sbin/scalyr-agent-2 start 
        endscript 
    } 
    

    createコマンドに必要に応じてオーナーと権限を追加します。

また、私は次のようでした:

  • weeklyを取り除く:あなたは、古いファイルを削除したい、なぜにわざわざ:周波数とsize
  • 相互に排他的ではcompressdelaycompressコマンドを削除します最初の場所で圧縮?

しかし、上で指摘したように、あなたが実際にそれらを必要としない場合は、最初の場所でログをしたいので、それらを書いてからアプリケーションを防止しようと、あるいは/dev/nullにリダイレクトされませんように、それが見えます。

サイドノート:copytruncate設定のので、何が起こっているかのあなたの説明が非常に正確ではありません:ログ・ファイルが削除されることはありません、のみコピーし、場所を切り捨て。これは、書き込み先のファイルハンドルを変更できないプログラムで使用されます。

+0

「最初に直接/ dev/nullにログオンするのはなぜですか?」最新のログを保持したいが、古いログを保持する必要はないからです。特に何かが起きている間に 'tail -f'でログを見たいかもしれませんが、履歴ログは必要ありません。 – Thayne

+0

@thayne意味がある。 –

関連する問題