ホーム » DB関連 » Oracle アラートログローテーション

Oracle アラートログローテーション

   作者:ビズコネクトポータル   发布时间:2013-08-28   

Oracle アラートログを指定サイズ(単位K)を超えたファイルに対してリテンション処理を実施する。
既存ファイルをリネームし、空ファイル作成する。

#!/bin/bash

####################################################################################################
##TI  アラートログ切り替え
##
##FN  ファイル名 :alertlog_retention.sh
#CT  機能概要    :指定サイズ(単位K)を超えたファイルに対してリテンション処理を実施する
#                 既存ファイルをリネームし、空ファイル作成する。
#
##AG  引  数     : なし
##RT  戻り値     : 0  = 正常終了
#                  1  = 異常終了
####################################################################################################

export C_OK_CODE=0                                                        # Normal Exit Code
export C_ERR_CODE=1                                                       # Error Exit Code
export C_EXEC_USER=$(whoami);                                             # Exec User
export C_DATETIME=`date +"%Y%m%d%H%M%S"`;                                 # システム日付(YYYYMMDDHH24MMSS)
export RO_FISIZE=10240                                                    # 重要 リテンションサイズ(単位K)
export ORACLE_BASE=/opt/oracle                                            # ORACLE BASE
# アラートログ PATH
export ALERT_LOG=$ORACLE_BASE/diag/rdbms/ORASID/trace/alert_ORASID.log


# =========================================#
# 1 実行ユーザーチェック
# =========================================#
if [[ "${C_EXEC_USER}" != "oracle" ]]; then
    echo "ERROR:シェル実行可能ユーザーはoracleのみです。"
    exit ${C_ERR_CODE}
fi

# =========================================#
# 2 ログ切り替え
# =========================================#

## findコマンドで定義ファイルでの指定されている条件のファイルが存在するか確認
rotation_file=`find "${ALERT_LOG}" -type f -size +${RO_FISIZE}k 2> /dev/null`

## 対象ファイルが存在した場合ローテーション処理を行う
if [ -f "${rotation_file}" ]
    then
    mv ${rotation_file} ${rotation_file}.${C_DATETIME}
    # カレントログファイル内容をクリアする
    cat /dev/null > ${rotation_file}
fi


exit ${C_OK_CODE}

此评论不代表本站观点大家说

《Oracle アラートログローテーション》等您坐沙发呢!

发表评论

亲,不支持纯字母、符号评论哦~