首页 > 代码库 > backup script
backup script
#!/bin/bash###################################################### export the whole database use exp utility. ###############################################################load db profile#############################. ~/profile/c21upg10.profile#########set nls_lang################################db_nls_value=`sqlplus -s / as sysdba <<EOFselect userenv(‘language‘) from dual;EXITEOF`NLS_LANG=`(echo $db_nls_value | cut -d‘ ‘ -f3)`export NLS_LANG##########exp########################################file_name="${ORACLE_SID}_full_`date ‘+%y%m%d‘`.dmp"log_name="${ORACLE_SID}_imp_`date ‘+%y%m%d‘`.log"backup_location=/u01/db_backupexp \‘/ as sysdba\‘ file=$backup_location/$ORACLE_SID/$file_name log=$backup_location/$ORACLE_SID/$log_name full=y##########compress and delete obsoleteness###########gzip $backup_location/$ORACLE_SID/*.dmp
后来加了一段删除冗余代码。 这段代码中要记住的有几点
1. 设置日期
date -d "-1 week" +%y%m%d
date -d "-1 day" +%y%m%d
2. 判断shell命令执行成功与否
command ; flag=$?
if [ $flag -eq 0 ]
cur_bak=$backup_location/$ORACLE_SID/${ORACLE_SID}_full_`date ‘+%y%m%d‘`.dmp.gzcur_bak_7=$backup_location/$ORACLE_SID/${ORACLE_SID}_full_`date -d "-1 week" +%y%m%d`.dmp.gzcur_bak_14=$backup_location/$ORACLE_SID/${ORACLE_SID}_full_`date -d "-2 week" +%y%m%d`.dmp.gzcur_log=$backup_location/$ORACLE_SID/${ORACLE_SID}_imp_`date ‘+%y%m%d‘`.logcur_log_7=$backup_location/$ORACLE_SID/${ORACLE_SID}_imp_`date -d "-1 week" +%y%m%d`.logcur_log_14=$backup_location/$ORACLE_SID/${ORACLE_SID}_imp_`date -d "-4 week" +%y%m%d`.log if [ -a $cur_bak ] && [ -a $cur_bak_7 ] && [ -a $cur_bak_14 ] ;then grep "Export terminated successfully without warnings" $cur_log >/dev/null 2>&1 ; flag1=$? grep "Export terminated successfully without warnings" $cur_log_7 >/dev/null 2>&1 ; flag2=$? grep "Export terminated successfully without warnings" $cur_log_14>/dev/null 2>&1 ; flag3=$? if [ $flag1 -eq 0 ] && [ $flag2 -eq 0 ] && [ $flag3 -eq 0 ] ; then mkdir $backup_location/$ORACLE_SID/temp; flag1=$? mv $cur_bak $backup_location/$ORACLE_SID/temp ;flag2=$? mv $cur_bak_7 $backup_location/$ORACLE_SID/temp ;flag3=$? mv $cur_bak_14 $backup_location/$ORACLE_SID/temp ;flag4=$? mv $cur_log $backup_location/$ORACLE_SID/temp ;flag5=$? mv $cur_log_7 $backup_location/$ORACLE_SID/temp ;flag6=$? mv $cur_log_14 $backup_location/$ORACLE_SID/temp ;flag7=$? if [ $flag1 -eq 0 ] && [ $flag2 -eq 0 ] && [ $flag3 -eq 0 ] && [ $flag4 -eq 0 ] && [ $flag5 -eq 0 ] && [ $flag6 -eq 0 ] && [ $flag7 -eq 0 ] ; then rm $backup_location/$ORACLE_SID/*.gz ; flag1=$? rm $backup_location/$ORACLE_SID/*.log; flag2=$? mv $backup_location/$ORACLE_SID/temp/* $backup_location/$ORACLE_SID/; flag3=$? rm -r $backup_location/$ORACLE_SID/temp/; flag4=$? if [ $flag1 -eq 1 ] || [ $flag2 -eq 0 ] || [ $flag3 -eq 0 ] || [ $flag4 -eq 0 ];then echo "send email for here0" fi fi fielse echo "send email for here1"fi
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。