oracle备份脚本

#!/bin/bash

oracleDir=/home/oracle
backupDate=`date +%Y-%m-%d`
backupDir=/opt/orackeBackup
deleteDate=`date -d '15 days ago' +%Y-%m-%d`


oracle_backup(){

	if [[ ! -d $backupDir/$backupDate ]]; then
		mkdir -p $backupDir/$backupDate
	fi

	for file in `ls $oracleDir | grep .dmp`
	do
		rm -rf $oracleDir/$file
	done

	su - oracle -c "expdp info/111111 file=info.dmp compression='all'"
	if [ $? -ne 0 ];then
		echo "info数据导出失败"
		exit 1
	else
		echo "info数据导出成功"
	fi



	for dmpfile in `ls $oracleDir | grep .dmp`
        do
                mv $oracleDir/$dmpfile $backupDir/$backupDate
        done
}


upload_oracle_backup_to_fileserver(){

	host=
	passwd=

	cd $backupDir

	zip -r $backupDate.zip $backupDate/

	/usr/bin/expect <<EOF
    	spawn scp $backupDate.zip root@$host:/root/
    	expect {
        	"*yes/no*" {send "yes\r" ; exp_continue}
        	"*password*" {send "$passwd\r" ; exp_continue}
    	}
EOF

	if [ $? -ne 0 ];then
		echo "上传到远程备份服务器失败"
		exit 1
	else
		echo "上传到远程备份服务器成功"
		rm -rf $backupDate.zip
	fi

}


delete_15dAgo_backup(){

	if [[  -d $backupDir/$deleteDate ]]; then

		rm -rf $backupDir/$deleteDate

		if [ $? -ne 0 ];then
			echo "15天前的Oracle备份删除失败"
			exit 1
		else
			echo "15天前的Oracle备份删除成功"
		fi
	else
		exit 0
	fi
}



echo "-----------------备份开始-----------------"
oracle_backup
echo "-----------------备份结束-----------------"


echo "-----------------上传开始-----------------"
upload_oracle_backup_to_fileserver
echo "-----------------上传结束-----------------"


echo "-----------------清理开始-----------------"
delete_15dAgo_backup
echo "-----------------清理结束-----------------"


posted @ 2020-09-15 14:53  半尺阳光  阅读(175)  评论(0)    收藏  举报