自動(dòng)實(shí)現ontape日志備份,這樣我們就可以編寫(xiě)一個(gè)腳本,讓操作系統在系統不忙時(shí)自動(dòng)調用。
1 ) $ONCONFIG 中參數 TAPEDEV已設置 TAPEDEV /opt/informix/backup/logback # Tape device path TAPEBLK 16 # Tape block size (Kbytes) TAPESIZE 2000000 # Maximum amount of data to put on tape (Kbytes) 2) 備份數據的存放目錄 /opt/informix/backup/logback; 3) 備份過(guò)程產(chǎn)生的日志文件放在/opt/informix/backup/autobackup.log目錄下; 4) ftp.cmd 文件放在 /opt/informix/backup目錄下;
#----------Autobackup.sh Begin----------
# #autobackup.sh #
#加載數據庫環(huán)境 . /opt/informix/setenv
#設置備份日志文件 LOGFILE=/opt/informix/backup/autobackup.log #取得當前系統日期 DATE=`date +%Y%m%d`
echo "---------- INFORMIX SYSTEM BACKUP(`date +%c`) ----------" >>$LOGFILE 2>&1
#生成一個(gè)備份的目標文件 touch /opt/informix/backup/logback >>$LOGFILE 2>&1 chown informix:informix /opt/informix/backup/logback >>$LOGFILE 2>&1 chmod 660 /opt/informix/backup/logback >>$LOGFILE 2>&1
#開(kāi)始零級備份 echo ` ` | ontape -c >>$LOGFILE 2>&1
#將備份完成后的文件加上時(shí)間戳 mv -f //opt/informix/backup/logback /opt/informix/backup/logback .$DATE >>$LOGFILE 2>&1
#壓縮備份 compress -f /opt/informix/backup/logback .$DATE >>$LOGFILE 2>&1
#將備份文件傳輸到其它機器上 cp -f /opt/informix/backup/logback .$DATE.Z /Backup/ftp >>$LOGFILE 2>&1 ftp -n < /opt/informix/backup/logback/ftp.cmd rm -f /opt/informix/backup/logback ftp/* >>$LOGFILE 2>&1
#刪除5天前的備份 COUNTS=`ls /Backup|sort|wc -l` echo "There is $COUNTS files in //opt/informix/backup/logback ..." >>$LOGFILE 2>&1 if [ $COUNTS -ge 7 ] then echo "An oldest file will be delete ,please wait..." >>$LOGFILE 2>&1 OLDFILE=`ls /Backup|sort|head -1` >>$LOGFILE 2>&1 cd /Backup rm -f $OLDFILE >>$LOGFILE 2>&1 echo "Delete file completed ,$OLDFILE was deleted." >>$LOGFILE 2>&1 else echo "There is no more then 6 file ,nothing to do..." >>$LOGFILE 2>&1 fi
#釋放數據庫無(wú)用內存 onmode -F
#------------autobackup.sh End-----------
以上腳本可以使用操作系統的crontab命令,指定時(shí)間,自動(dòng)運行,不用人工干預。 另外附上使用ftp命令的自動(dòng)傳輸教本。
#------------ftp.cmd begin---------------------------
open 9.185.43.62
User backup backup123
cd /RemoteBackup
bin
bin
bin
bin
put /opt/informix/backup/logback /ftp/* /RemoteBackup/backup
Bye #--------------------------ftp.cmd end ---------------------- | | |