Linux は毎日修正ログを収集します。
/var/log/
毎日ディレクトリからログファイルを収集したいと思います。
私のスクリプトは、ディレクトリ内のすべてのファイルを圧縮して個別に保存します。しかし、問題は、毎日すべてのログファイルを圧縮してファイルサイズを増やすことです。
それでは、毎日修正されたファイルのみ(修正されたコンテンツのみ)圧縮する方法は何ですか?
特定の時点以降にファイルの変更内容を取得する方法。つまり、初めてログ全体を収集できます。
翌日から、その日のログのみを収集する必要があります。
翌日....
....
ベストアンサー1
要件を満たす場合、簡単なアプローチは、毎日交換される特定のログファイルを持つことです。まず、/etc/(r)syslog.conf
ロギング後に何かを削除するルールがある場合は、おそらく上部の近くに追加します。
*.* -/var/log/daily.log
これは受け取るみんなつまり、別のログ内のすべての内容がこのログに保存されます。
その後、cronを介して実行できるスクリプトが必要です。使用できますが、logrotate
この場合はあまり意味がありません。
#!/bin/sh
gzip /var/log/daily.log
# Do whatever with the gzipped file
touch /var/log/daily.log
kill -s HUP `pidof syslogd` # see below
最後のステップは、syslogdを再起動して再度開くようにすることです/var/log/daily.log
。そうでなければ、後で何も見ることができません。 rsyslogを使用している場合は、代わりにrsyslogを使用してくださいpidof rsyslogd
。pidof
どれを先にテストしてみるか。
最後に/etc/crontab
:
0 0 * * * root /path/to/rotationscript
私は毎日真夜中にこれをします。