oracle的trace日志迁移

来源:互联网 发布:网络知识产权侵权案例 编辑:程序博客网 时间:2024/05/18 02:26
#!/bin/bash#-------------------------------------------------------------# 将oracle产生的trace日志迁移至数据硬盘#-------------------------------------------------------------# @author alexander#-------------------------------------------------------------# @time 20160105#-------------------------------------------------------------# 获取trace日志路径alert_path=$1# 获取trace日志迁移目的路径listener_path=$2if [[ ! -n $1  ]] || [[ ! -n $2  ]];then        echo "日志路劲和日志迁移目的路径未设置"        exitfi# 获取目录下所有文件函数function ergodic(){        local files=('null')        local i=0        for file in `ls $1 | grep -E "listener\.log"`                do                        if [ -f $1"/"$file ]                        then                                files[$i]=$1"/"$file                        fi                        let i++;                done        # 没有trace日志文件退出脚本        if [ $i -eq 0 ]; then                exit        fi        echo ${files[@]}}lsnrctl set log_status offfiles=`ergodic $alert_path`for file in ${files[*]}        do                # 获取日志文件最后修改时间                modify=`stat -c %Y $file`                # 获取时间格式年-月-日                filedate=`date -d "@${modify}" +"%Y-%m-%d"`                # 获取时间格式年月日时分秒                filesec=`date -d "@${modify}" +"%Y%m%d%H%M%S"`                # 获取日志文件路径                logpath=${file%/*}                # 获取日志文件名                logname=${file##*/}                # 获取文件后缀名                logext=${file##*.}                # 判断日志存储路径是否存在,不存见创建之                if [ ! -d $2"/"$filedate ]; then                        `mkdir $2"/"$filedate`                fi                # 将日志文件移动到目的路径                `mv $file $2"/"$filedate"/"$filesec"."$logext`        donelsnrctl set log_status on

注意:
本脚本启动须使用lsnrctl命令,如果遇到之类的错误,是环境变量的问题。
需要在shell脚本中加入(图片中的.bash_profile少个字母e)主要是加入ORACLE_HOME这个环境变量。

0 0