Linuxのログの回転

Linuxのログの回転

ディレクトリからlsコマンドを実行するたびに、/var/logログファイル(例)messagesとローテーションバージョン(例)を見つけることができますmessages.1.gz

たとえば、ユーティリティを使用していない場合でも、これらのファイルを自動的に回転させるにはどうすればよいですかlogrotate?ファイルの回転基準は何ですか(例:ログファイルのサイズは「X」MBまたは「N」日ごとに回転する必要があります)。ログの回転を制御(有効/無効)にするには?

メモ:私は毎月1日に実行されるbashスクリプトを作成しました。スクリプトはログファイルを圧縮し、圧縮ファイルをリモートサーバーにコピーし、元のログファイルを空にします(したがって、次回実行時に更新されたログを使用できるようにします)。したがって、ログファイルを循環させることは望ましくありません。

答え1

ここにファイルがあることを確認してください。/etc/logrotate.d

その場合は、回転したくないコンテンツに関連するコンテンツを削除してください。ただし、削除する項目に注意し、logrotate を使用して回転したすべてのファイルに対してファイルをクリーンアップする方法があることを確認してください。そうしないと、ある日目を覚ますとファイルシステムにディスク容量が不足していることを理解できないリスクがあります。

修正する

ディレクトリ内の単一のファイル内に複数のファイルを指定できますlogrotate.d。たとえばファイルです。これは、前述のログの宛先の場所でもsyslogあります。messages

/etc/logrotate.d/syslog

/var/log/messages 
/var/log/secure 
/var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

アップデート#2

次のコマンドを実行して、syslog が logrotate の代わりにログファイルを循環していることを確認します。

grep -rni "message" /etc/cron.*/*

Debianスタイルのシステムでは、syslogの回転は通常のcron毎日のスクリプトで制御できます/etc/cron.daily/sysklogd。私のgrepコマンドは、これがあなたのケースに当てはまるかどうかを確認するのに役立ちます(RHELを使用しても同様です)。

詳細はこちらからご覧いただけます。http://www.ducea.com/2006/06/06/rotating-linux-log-files-part-1-syslog/

また確認して下さい:grep -rni "message" /etc/rsyslog.d/*

関連情報