1MBファイルを録音する方法は?

1MBファイルを録音する方法は?

ログサイズが増加した後、ログを回転させるために、次のように1Mcronjobが15分ごとに呼び出されます。logrotate

0,15,30,45 * * * * /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf

syslog-ng-rotate.confどこ

/app/syslog-ng/custom/output/all_devices.log {
size 1M
copytruncate
dateext
dateformat -%Y%m%d-%s
rotate 365
sharedscripts
compress
postrotate
     /app/syslog-ng/sbin/syslog-ng-ctl reload
endscript
}

1Mただし、ファイルサイズが15分以内の場合、上記の設定は機能しません。

ファイルサイズに達するとすぐにファイルを回転させるにはどうすればよいですか1M

ベストアンサー1

logrotate は実行を指示した場合にのみ実行されます。ログファイルが急速に増加する可能性があり、cronを使用している場合は、次の2つの提案があります。

  1. クローンジョブをより頻繁に(たとえば、1分ごとに)スケジュールします。

    * * * * * /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf
    

    これにより、サイズ制限に達する前にログファイルが大きくなるまでに最大60秒かかります。

  2. ログファイルがまだ1分あたりに急速に増えている場合は、logrotateを毎分数回実行し、次の手順を実行します。

    * * * * * /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf
    

    (たとえば)または:

    * * * * * /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; sleep 10; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; sleep 10; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf
    

    ...logrotate呼び出しの間に10秒。ノート単一のクローン操作が60秒以上かかることを望まない。それ以外の場合は、次のクローン操作と重なります。完全なcronジョブを次にラップすることを検討してくださいtimeout

    * * * * * timeout 59 sh -c "/usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; sleep 10; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf; sleep 10; /usr/sbin/logrotate /app/syslog-ng/custom/conf/syslog-ng-rotate.conf"
    

ご使用の環境に合わせてlogrotateを呼び出そうとする時期と回数をログファイルを制御する必要があります。

おすすめ記事