Linux Shell + Cron Sample


[cron_recover.sh]
-------------------------------------------------------------
#!/bin/sh

DIRNM="/u01/app/oracle/oradata"


$DIRNM/recover.sh aaa
if [ "$?" -ne "0" ]; then

       echo "Oracle Srv's recover process was failed. SCHG" | mail -s "Recover Error(aaa)" test1@mail.com,test2@mail.com

fi

$DIRNM/recover.sh bbb
if [ "$?" -ne "0" ]; then

        echo "Oracle Srv's recover process was failed. SCHG_INFO" | mail -s "Recover Error(bbb)" test1@mail.com,test2@mail.com

fi

exit 0
-------------------------------------------------------------

[recover.sh]
-------------------------------------------------------------
#!/bin/sh

if [ $# -ne 1 ]; then
        exit 1
fi

# expdp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=sis
export LANG="ja_JP.UTF-8"
export NLS_LANG="Japanese_Japan.AL32UTF8"

#DATETIME=`date +%Y%m%d%H%M%S`
#CURRENT_DATE=`date +%Y%m%d`


if [ $1 == "aaa" ]; then
    FILENM="${1}_2*"
else
    FILENM="${1}*"
fi


DMPEXT=".dmp"
LOGEXT=".log"

mountpoint -q /mnt/share
CHK_MOUNT=$?

if [ $CHK_MOUNT -ne 0 ] ; then
    mount 192.168.1.xx:/volume1/IT/BK_Folder /mnt/share
    mountpoint -q /mnt/share
    CHK_MOUNT=$?

    if [ $CHK_MOUNT -ne 0 ] ; then
        echo "mount shippai"
        exit 1
    fi
fi

cd /mnt/share/
DMP=`ls -rt $FILENM$DMPEXT | tail -n 1`

cp -rp "/mnt/share/${DMP}" "/u01/app/oracle/oradata/"

cd /u01/app/oracle/oradata
umount -l /mnt/share

DMP=`ls -rt $FILENM$DMPEXT | tail -n 1`
LOG=$DMP$LOGEXT


su -oracle -c `${ORACLE_HOME}/bin/impdp system/abc\$\@hkschg DIRECTORY=ORA_DATA DUMPFILE=${DMP} CONTENT=DATA_ONLY TABLE_EXISTS_ACTION=TRUNCATE LOGFILE=${LOG}`

echo "Recover report for text DB server(xxx)" | mail -a ${LOG} -s "Recover report(xxx)" test1@mail.com,test2@mail.com

#remove todays old data
find $ORACLE_BASE/oradata/ -name $DMP -delete

#remove log files 10 days ago
find $ORACLE_BASE/oradata/ -type f -name "aaa_*.log" -mtime +10 -delete
#find $ORACLE_BASE/oradata/ -type f -name "IMPORT_*.log" -mtime +30 | xargs rm -f

exit 0
-------------------------------------------------------------

[Auto Run]
-------------------------------------------------------------
# crontab -e
  30 3 * * * /u01/app/oracle/oradata/cron_recover.sh

# systemctl restart crond
-------------------------------------------------------------
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值