自动删除oracle归档日志脚本及实现

归档路径:/arch2

1、  oracle用户身份登录系统

2、  创建脚本del_archivedlog

#!/usr/bin/ksh

echo "delete archived logs begin"

date

export ORACLE_BASE=/oracle

export ORACLE_SID=yhlbas

export TMP=/oracle/temp

export ORACLE_HOME=$ORACLE_BASE/product/8.1.7

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/ccs/bin:/usr/lbin:/usr/bin

export LIB_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib

find /arch2 mtime -7 name *.arch >/arch2/test

if [ -s /arch2/test ]

then

if find /arch2 ! -mtime -7  -name *.arch -exec rm -f '{}' ';'

then

echo "delete archived logs of seven days ago complete!"

else

    echo delete archived logs of seven days ago failed!

fi

else

    echo there are no archived logs of seven days ago!

fi

 (以上内容是如果归档路径下存在七天以内的归档日志文件则删除7天以前的归档日志)

3、  改变脚本del_archivedlog权限:

chmod 777 del_archivedlog

4、  定时脚本del_archivedlog

crontab e 然后输入如下内容:

00 5 * * * /oracle/del_archivedlog >>/oracle/del_archivedlog_log 2>&1

(表示在每天的凌晨5点执行del_archivedlog脚本,并将输出内容重定向到del_archivedlog_log文件,以后查看该文件就知道是否运行成功)

阅读更多
上一篇批处理自动修改 IP 地址
下一篇ORA-00257: archiver error. Connect internal only
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭