shell脚本在发送电子邮件之前不给等待RMAN块完成

时间:2018-08-09 10:41:43

标签: bash shell

希望大家一切都好。

我有一个ORACLE备用数据库,每天我们分别在3点和6点检查两次块错误,并且我们使用下面的带有rman run block的shell脚本来检查它。问题是它不等待rman块完成才发送输出。如果需要修改,请问我的建议。

prsl_phl_blk_chk.sh ++++++++++++++++++++++

MAIL_ID="abcd@google.com"
export ORACLE_HOME=/u01/app/oowner/product/11.2.0.4/dbhome_1
export ORACLE_SID=ABCD_STBY
export PATH=$ORACLE_HOME/bin:$PATH
NLS_DATE_FORMAT="dd-MON-YYYY hh24:mi:ss"; export NLS_DATE_FORMAT
nohup rman target=/ @/scripts/rman_blk_check.scr > /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log 2>&1 &
mail -s "ABCD_STBY logical Block Corruption check  on `date`" ${MAIL_ID} < /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log


rman_blk_check.scr
++++++++++++++++++
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup validate check logical database;
}

谢谢

1 个答案:

答案 0 :(得分:1)

如果您从&行的末尾删除nohup,则rman命令将在mail运行之前运行完成。

nohup rman target=/ @/scripts/rman_blk_check.scr > /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log 2>&1

&告诉bash在后​​台运行rman命令,这不是您想要的。

我注意到在rman下仅运行nohup有点奇怪。大概还应该保护脚本的其余部分不受干扰。