脚本大部分内容载录网上,本人仅添加邮件发送内容。邮件使用sendEmail包实现,需要自己单独安装。然后再次封装。
#!/bin/bash

#use Oracle Env.
source ~/.bash_profile
#Def backupdir
dirname=`date "+%Y-%U"`
lastweek=`date -d "-3 week" +%Y-%U`
backupdir=/mnt/usbp/u01/database/rman_bak/$dirname
rmdir=/mnt/usbp/u01/database/rman_bak/$lastweek
#check backdir
if [ ! -d $backupdir ];then
mkdir -p $backupdir
fi
#
#Get Time And Set Backup Level.
#
Dayname=`date +%a`
if [ $Dayname = 'Sun' ]; then
Level=0
elif [ $Dayname = 'Thu' ];then
Level=1
else 
Level=2
fi
#Wed means wedsday
#
#Define Backup Type.
#
if [ $Level = 0 ]; then  
BACKUP_TYPE="incremental level 0" 
elif [ $Level = 1 ]; then      
BACKUP_TYPE="incremental level 1"
else
BACKUP_TYPE="incremental level 2"
fi
#
#Log.
#
logdate=`date +"%Y%m%d"`
logdate2=`date +%F`
logfile=$backupdir/racdb_rman_"$logdate".log
echo `date +'%Y%m%d %T'`' start backup-----' >> $logfile
cat >$logfile <<EOF
#
#This is RMAN Backup log.
#
#Today is $logdate2,$Dayname.The RMAN Backup Level is $Level and Backup type is $BACKUP_TYPE.
#
#RMAN Bakcup Process starting.
EOF
#backup body
rman target / log $logfile append <<EOF
run{
allocate channel a1 type disk;
crosscheck backup;
delete noprompt expired backup;
crosscheck archivelog all;
delete noprompt expired archivelog all;
backup as compressed backupset $BACKUP_TYPE database  format '${backupdir}/incr${Level}_%T_%d_%s_%p.bak' filesperset=8;
sql 'alter system archive log current';
backup as compressed backupset archivelog all format  '${backupdir}/arc_%T_%d_%s_%p.bak' delete all input;
backup current controlfile format '${backupdir}/ctl_%T_%d_db_%s_%p.bak';
release channel a1;
}
EOF
echo `date +'%Y%m%d %T'`' end backup-----' >> $logfile
#delete last week backup.
if [ -d $rmdir ];then
rm -rf $rmdir
echo `date +'%Y%m%d %T'`' end rm_his-----' >> $logfile
echo 'hello'
fi
#send mail to smc,if it have some error in backing
if [ -f ${logfile} ];then
sum=`cat ${logfile} | grep -E "RMAN-|ORA-"|wc -l`
if [ ${sum} -lg 0 ];then
sh /home/oracle/shell/mail_pl.sh "***.sohu.com" '备份报警' "`cat ${logfile} | grep -E 'RMAN-|ORA-'`" "${logfile}"
fi
fi
exit 0

-----------------------------------------------------------------------------------------------
mail_pl.sh脚本内容:
#!/bin/bash
SMTP_server='***.sohu.com'
username='*****'
password='****'
from_email_address='***.sohu.com'
to_email_address="$1"
message_subject_utf8="$2"
message_body_utf8="$3"
attachment="$4"
message_subject_gb2312=`iconv -t UTF-8 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
message_body_gb2312=`iconv -t UTF-8 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
sendEmail='/home/oracle/shell/sendEmail.pl'
if [ -e ${message_body} ];then
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -o message-file="$message_body" -a ${attachment} -o message-content-type=text -o message-charset=gb2312
else
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -a ${attachment} -o message-content-type=text -o message-charset=gb2312
fi

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28572479/viewspace-2123959/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28572479/viewspace-2123959/

rman备份脚本 发送邮件通知相关推荐

  1. Windows下oracle RMAN备份脚本

    Windows 下RMAN备份脚本,比较简单.我们看内容. 1.      修改RMAN相关参数 RMAN>show all; RMAN>CONFIGURE CONTROLFILE AUT ...

  2. Windows下RMAN备份脚本

    Windows 下RMAN备份脚本,比较简单. 我们看内容. 1.      修改RMAN相关参数 RMAN>show all; RMAN>CONFIGURE CONTROLFILE AU ...

  3. rman 备份脚本之总结分析

    rman 备份脚本之总结分析 脚本一: run{ allocate channel ch1 device type disk; allocate channel ch2 device type dis ...

  4. rman备份脚本shell版

    1.数据库全备到硬盘 [oracle@centos7 scripts]$ cat rman_backup.sh source /home/oracle/.bash_profile rman targe ...

  5. oracle backup arch,ORCLE RMAN备份脚本

    1.Linux下oracle备份脚本 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11. ...

  6. ORACLE 10G rman 备份脚本

    #!/bin/bash back_path="/10g/backup"; back_log="/10g/backup/log"; rman_name=" ...

  7. 玩转oracle 11g(50):rman备份脚本

    D盘新建一个文件夹backup_file,里面新建一个文件夹logs 一个文件叫auto_full_one_rman.bat 修改这三处 set oracle_sid=wiicare rman cmd ...

  8. sql backup database备份d盘_Oracle-备份与恢复(二)RMAN备份-自动备份计划任务脚本...

    rman 备份执行脚本 rman 基于块备份 #! /bin/bash # # LEVEL0 包含自動刪除archivelog并記錄相關日志 # # crontab -l # 0 2 * * * /h ...

  9. 如何 搭建 RMAN 备份平台

    一. RMAN 的一些理论知识 RMAN Catalog 和 Nocatalog 的区别 http://blog.csdn.net/tianlesoftware/archive/2010/06/02/ ...

最新文章

  1. [Math]理解卡尔曼滤波器 (Understanding Kalman Filter)
  2. Redisbook学习笔记(1)跳跃表
  3. 纯css3天气动画场景特效
  4. windows phone开发环境搭建
  5. 怎么做分布式存储的面试?
  6. ofo之死:一场商业“宫斗剧”下的祭品
  7. 元气骑士机器人的成就皮肤_元气骑士:5把特殊“红武”,想要机器人的皮肤,用它就对了!...
  8. c语言素数环实验报告,c语言素数环问题实例讲解
  9. 我对数据分析的几点感悟
  10. RO、RW和ZI数据解析
  11. 毕业两年,工作三年Java程序员的一点点体会与建议
  12. 模具师傅告诉我塑胶模具是由这10大系统构成,不会的赶紧学习
  13. 改变自己是神,改变别人是神经病
  14. 无线wifi丢包的解决办法
  15. python随堂检测4
  16. 百度智能云的使用——以人脸识别为例
  17. 【联邦学习】联邦学习量化——non-iid数据集下的仿真
  18. setgid: Operation not permitted
  19. 一个人的浪漫 2012.3.3
  20. 售后服务系统预约工单方便客户报修?

热门文章

  1. Power BI Paginated Reports分页报表
  2. Oracle EBS Concurrent Request:Gather Schema Statistics
  3. 融合正余弦和柯西变异的麻雀搜索算法
  4. 8月11日 集训测试
  5. c#获取当前时间 毫秒_C# 当前系统时间获取及时间格式详解
  6. 3-对链家二手房数据进行预处理,以及利用CNN进行多分类操作
  7. 人工智能会“偷走”潜艇的隐身能力吗?
  8. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)
  9. 一文看懂Pinterest如何构建时间序列数据库系统Goku
  10. 浏览器最小字体为12px以及解决方法