oracle備份指令碼
阿新 • • 發佈:2020-09-15
#!/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 "-----------------清理結束-----------------"