ログファイルをコピーするスクリプトを作成する必要があります。
ログは2つの形式で提供されます。
System_<date_timestamp>.log
trace_<date_timestamp>.log
トレースログが20MBに達し、システムログが10MBに達すると、新しいファイルが生成されます。
これらのログのうち5つ(各タイプごとに5つ)のみを保存できます。5つを超えると、古いファイルが削除され、新しいファイルと置き換えられます。
したがって、削除する前に後でデバッグする必要がある場合は、表示できるように別の場所にコピーする必要があります。
デフォルトでは、次のようになります(システムログと同様に、トレースログ形式のみが表示されます)。
trace_12.03.05_17.11.20.log
trace_12.03.05_17.12.30.log
trace_12.03.05_17.13.45.log
trace_12.03.05_17.13.23.log
trace_12.03.05_17.14.40.log
答え1
log-rotateを使用して同じことを実行することもできます。次の例をご覧ください。
# Logrotate file for trace
/source/path/trace_*.log {
missingok
create
compress
rotate 1
lastaction
# After compressing logs, move to other location
Log_dir="/target/dir/old_log_$(date +%F)/$(date +%H_%S)/"
[[ ! -d "${Log_dir}" ]] && /bin/mkdir -p "${Log_dir}"
/bin/mv /source/path/*.gz "${Log_dir}"
endscript
}
上記のファイルを保存し、/etc/logrotate_trace.conf
単に時間ごとのクローンタスクを設定します。
00 * * * * /usr/sbin/logrotate -f /etc/logrotate_trace.conf
テストのためにコマンドラインから実行できます。
/usr/sbin/logrotate -f /etc/logrotate_trace.conf
答え2
GNUのcp
使用
cp -p --update /source/path/trace_*.log /target/dir
答え3
最も直接的なツールは同期は、新しいファイルをコピーし、変更されたファイルを更新し、変更されていない既存のファイルを保持します。
rsync -a /path/to/source/*.log /path/to/backup/directory/