一直以来实现异地备份比较麻烦,在此分享下这几天来的比较只能的脚本.不知道能放得下不通过本地脚本调用远程脚本返回值,比较备份的数量以及大小,确定无误再归档备份,完全Open...有人说过".技术也是交流出来的么"
#!/bin/bash
#SCRIPT.:FTP_BAK
#AUTHOR:LENG BO
#DATE
#PLATFORM.:LINUX AS4.6
#PURPOSE
#
#REV LIST:
# DATE:2009-12-03
# BY:lengbo
# USAGE:FTP oracle backup to remote backup server
#
#Define enviorment variable
#SCRIPT.:FTP_BAK
#AUTHOR:LENG BO
#DATE
#PLATFORM.:LINUX AS4.6
#PURPOSE
#
#REV LIST:
# DATE:2009-12-03
# BY:lengbo
# USAGE:FTP oracle backup to remote backup server
#
#Define enviorment variable
LOC='/home/rman/bak_ftp/log'
REMOTE='/home/bak/bak'
FTP_TMP='/home/rman/bak_ftp_tmp'
RMAN_LOC='/rman'
LOCAL='/home/rman/bak_ftp_tmp'
LOST='/home/rman/lost'
FTP_SERVER='172.20.10.8'
USER='bak'
PASSWD='bak'
REMOTE='/home/bak/bak'
FTP_TMP='/home/rman/bak_ftp_tmp'
RMAN_LOC='/rman'
LOCAL='/home/rman/bak_ftp_tmp'
LOST='/home/rman/lost'
FTP_SERVER='172.20.10.8'
USER='bak'
PASSWD='bak'
if [ ! -d $LOC ];
then mkdir -p $LOC
fi
if [ ! -d $LOST ];
then mkdir -p $LOST
fi
LOG_CNT=$(ls $LOC |wc -l)
if [ $LOG_CNT -ne 0 ];
then rm -rf $LOC/*log*
fi
then rm -rf $LOC/*log*
fi
####clear tmp backup directory,make it to only one backupfiles
CNT_BAK=$(ls $LOCAL|wc -l)
if [ $CNT_BAK -ne 0 ];
then mv $LOCAL/* $LOST
fi
cd $RMAN_LOC
tar -zcvf $FTP_TMP/bak.tar ora_rman
if [ $? -eq 0 ];
then
echo "========Script. starting========">>$LOC/ftp_log
echo "********Tar rman backups Succeed!Being ready to Ftping.......********">>$LOC/ftp_log
mv $FTP_TMP/bak.tar $FTP_TMP/bak_$(date +'%F-%H-%M-%S').tar && rm -rf $FTP_TMP/bak.tar
if [ $? -ne 0 ];
then echo "*********Add date to tar bakups Failed!********">>$LOC/ftp_log
fi
else
echo "========Script. starting========">>$LOC/ftp_log
echo "********Tar rman backups Failed!********">>$LOC/ftp_log
exit 1
fi
tar -zcvf $FTP_TMP/bak.tar ora_rman
if [ $? -eq 0 ];
then
echo "========Script. starting========">>$LOC/ftp_log
echo "********Tar rman backups Succeed!Being ready to Ftping.......********">>$LOC/ftp_log
mv $FTP_TMP/bak.tar $FTP_TMP/bak_$(date +'%F-%H-%M-%S').tar && rm -rf $FTP_TMP/bak.tar
if [ $? -ne 0 ];
then echo "*********Add date to tar bakups Failed!********">>$LOC/ftp_log
fi
else
echo "========Script. starting========">>$LOC/ftp_log
echo "********Tar rman backups Failed!********">>$LOC/ftp_log
exit 1
fi
echo "*******Now ftping********">>$LOC/ftp_log
echo "*******This is ftp Details!!!********">>$LOC/ftp_log
ftp -n $FTP_SERVER <user $USER $PASSWD
bin
verbose
debug
prompt off
cd /home/bak/bak
lcd /home/rman/bak_ftp_tmp
mput *
bye
EOF
bin
verbose
debug
prompt off
cd /home/bak/bak
lcd /home/rman/bak_ftp_tmp
mput *
bye
EOF
if [ $? -eq 0 ];
then echo "********Ftp backups to remote FTP Server Done!********">>$LOC/ftp_log
then echo "********Ftp backups to remote FTP Server Done!********">>$LOC/ftp_log
else echo "********Ftp backups to remote FTP Server failed!Plese check it ********">>$LOC/ftp_log
fi
echo "=======Script. End!========">>$LOC/ftp_log
mv $LOC/ftp_log /share/ftp_bak_log/ftp_log_$(date +'%F-%H-%M-%S')
mv $LOC/ftp_log /share/ftp_bak_log/ftp_log_$(date +'%F-%H-%M-%S')
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15072844/viewspace-622014/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15072844/viewspace-622014/