Windows版Oracleアラートログローテーションバッチ。
日次で動かして、アラートログを日付つきでバックアップしていく。
rem Oracle alert log rotation sample for windows batch script
rem アラートログのフルパス
set LOG_FILE=D:\oracle\product\10.2.0\admin\SID\bdump\alert_SID.log
rem バックアップファイル名を決める処理
rem アラートログは1ファイルだが、変数処理のため敢えてfor文を使う。
for /f "usebackq" %%I in ( '%LOG_FILE%' ) do (
set BACK_FILE=%%~dpnI_%DATE:/=%%%~xI
set LOG_DIR=%%~dpI
)
rem バックアップ処理
copy %LOG_FILE% %BACK_FILE%
rem アラートログを0リセット
copy NUL %LOG_FILE%
rem 古いファイルを削除
for %%I in ( '%LOG_DIR%' ) do (
rem ファイルの日付をチェックして、保存期間を過ぎてたら削除
rem 他の仕組みが楽だったら他の仕組みでやる。
)
ファイル名をきれいにしたいと思う方にどうぞ。
それにしてもやっぱりバッチは可読性が。。
例ではバックアップファイル名に日付文字列を使用したが、
通番方式の方が処理は簡単。
なにせバッチでは日付計算が簡単にはできないし。
あと、forループ使う時はsetの遅延問題にも注意。
0 件のコメント:
コメントを投稿