私は現在、Cronによって作成されたOracle Recoverログファイルを整理する方法を考え出そうとしています...
現在、Oracle スタンバイ リカバリ プロセスは、次のコマンドを使用して 15 分ごとに Cron によって呼び出されます。
0,15,30,45 * * * * /data/tier2/scripts/recover_standby.sh SID >> /data/tier2/scripts/logs/recover_standby_SID_`date +\%d\%m\%y`.log 2>&1
これにより、次のようなファイルが作成されます。
$ ls -l /data/tier2/scripts/logs/
total 0
-rw-r--r-- 1 oracle oinstall 0 Feb 1 23:45 recover_standby_SID_010213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 2 23:45 recover_standby_SID_020213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 3 23:45 recover_standby_SID_030213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 4 23:45 recover_standby_SID_040213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 5 23:45 recover_standby_SID_050213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 6 23:45 recover_standby_SID_060213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 7 23:45 recover_standby_SID_070213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 8 23:45 recover_standby_SID_080213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 9 23:45 recover_standby_SID_090213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 10 23:45 recover_standby_SID_100213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 11 23:45 recover_standby_SID_110213.log
-rw-r--r-- 1 oracle oinstall 0 Feb 12 23:45 recover_standby_SID_120213.log
私は基本的に、x日前より古いファイルを削除したいのですが、これにはlogrotateが最適だと思いました...
次の構成ファイルで logrotate を構成しました。
/data/tier2/scripts/logs/recover_standby_*.log {
daily
dateext
dateformat %d%m%Y
maxage 7
missingok
}
望ましい結果を得るために欠けているものはありますか?
Crontab ログ ファイルから日付を削除し、logrotate でそのファイルをローテーションさせることができると思いますが、ログ ファイルの日付は、ログが生成された日を反映しません。つまり、010313 のリカバリは、 logrotate が 020313 で起動し、ファイルをローテーションしているため、日付は 020313 です...
他のアイデアはありますか?また、ご回答いただきありがとうございます。
よろしく
ギャビン