1. ホーム
  2. linux

[解決済み] Centos/Linuxでlogrotateが全ログの最大ファイルサイズになるように設定する。

2023-06-20 23:36:24

質問

私たちは logrotate を使用しており、それは毎日実行されます...現在、私たちはログが著しく成長し (ギガバイトを参照)、サーバーを破壊するような状況に陥りました。そこで現在、ログに最大ファイル サイズを設定したいと考えています。

logrotate.conf にこれを追加することができますか?

サイズ50M

と設定すれば、すべてのログファイルに適用されるのでしょうか?それとも、ログごとに設定する必要があるのでしょうか?

または他のアドバイスがあれば教えてください。

(ps. 説明したようにログが大きくなったときに通知を受けたい場合、私たちがやりたいことは理想的ではないことは理解しています - しかし、利用可能なスペースがないためにログオンできなくなるよりはましです)

ありがとう、Sean

どのように解決するのですか?

の大きさを指定します。 ログファイル のサイズを指定します。例えば size 50M は、ファイルのサイズが 50MB 以上になると、 ログのローテーションを開始します。サフィックスとして M という接尾辞をつけると、メガバイトになります。 k はキロバイト、そして G はギガバイトを意味します。接尾辞がない場合は、バイトを意味するものとみなされます。末尾にある例で確認できます。3つのディレクティブが用意されています。 size , maxsize そして minsize . によると マンページ :

minsize size
              Log  files  are  rotated when they grow bigger than size bytes,
              but not before the additionally specified time interval (daily,
              weekly,  monthly, or yearly).  The related size option is simi-
              lar except that it is mutually exclusive with the time interval
              options,  and  it causes log files to be rotated without regard
              for the last rotation time.  When minsize  is  used,  both  the
              size and timestamp of a log file are considered.

size size
              Log files are rotated only if they grow bigger then size bytes.
              If size is followed by k, the size is assumed to  be  in  kilo-
              bytes.  If the M is used, the size is in megabytes, and if G is
              used, the size is in gigabytes. So size 100,  size  100k,  size
              100M and size 100G are all valid.
maxsize size
              Log files are rotated when they grow bigger than size bytes even before
              the additionally specified time interval (daily, weekly, monthly, 
              or yearly).  The related size option is  similar  except  that  it 
              is mutually exclusive with the time interval options, and it causes
              log files to be rotated without regard for the last rotation time.  
              When maxsize is used, both the size and timestamp of a log file are                  
              considered.

以下はその例である。

"/var/log/httpd/access.log" /var/log/httpd/error.log {
           rotate 5
           mail [email protected]
           size 100k
           sharedscripts
           postrotate
               /usr/bin/killall -HUP httpd
           endscript
       }

以下は、両ファイルの説明です。 /var/log/httpd/access.log/var/log/httpd/error.log . これらは、サイズが 100k を超えるたびにローテーションされ、 古いログファイルは (圧縮されずに) [email protected] に送られ、削除されることはありません。そのため sharedscriptspostrotate スクリプトは一度だけ (古いログが圧縮された後に) 実行され、回転されるログごとに実行されるわけではありません。このセクションの最初のファイル名を二重引用符で囲むと、logrotate は名前にスペースがあるログをローテートすることができることに注意してください。通常のシェルのクォート規則が適用され , と、そして \ の文字がサポートされています。