#!/bin/sh
BACKUPDIR=/sybase/dumpdb
log=$BACKUPDIR/dbbackup.log
ddays=3 #3天前的文件删除
Date=`date +%Y%m%d`
dayDir=${BACKUPDIR}/MBFEDB_BT_${Date}
tarfile=MBFEDB_BT_${Date}.tar
zfile=${tarfile}.Z
echo "--------------------------------------------------------" >> $log
nowtime=`date +"%Y%m%d %H:%M:%S"`
echo "--> 1-1 $nowtime backup begin" >> $log
if [ -d $dayDir ]
then
echo "--> 1-2 Dir $dayDir exist!" >> $log
else
mkdir $dayDir
echo "--> 1-3 Create dir $dayDir ok!" >> $log
fi
#-- dump --#
DBName='MBFEWKDB MBFEHISDB DIRWAYSDB DISWAYSDB'
chown -R sybase $dayDir
for db in $DBName
do
nowtime=`date +"%Y%m%d %H:%M:%S"`
su - sybase -c "isql -Usa -PBtsa1@ <
dump database $db to '$dayDir/${db}_${Date}.dump'
go
dump transaction $db with truncate_only
go
!"
echo "--> 2 $nowtime $db dump " >> $log
done
#-- 检查 dump 备份文件 --#
flag=0
for db in $DBName
do
if [ -f $dayDir/${db}_${Date}.dump ]
then
echo "--> 2-1 $nowtime $db dump ok (flag=$flag)" >> $log
else
flag=`expr $flag + 1`
echo "--> 2-2 $nowtime $db dump fail (flag=$flag)" >> $log
fi
done
if [ "$flag" != "0" ]
then
echo "--> 2-3 backup fail (flag=$flag) " >> $log
echo "--------------------------------------------------------\n\n" >> $log
exit 2
fi
#-- 打包 --#
nowtime=`date +"%Y%m%d %H:%M:%S"`
echo "--> 3-1 $nowtime tar begin" >> $log
tar -cf $BACKUPDIR/$tarfile $dayDir
res=$?
if [ "$res" = "0" ]
then
echo "--> 3-2 tar ok" >> $log
else
echo "--> 3-3 tar fail(res=$res)" >> $log
echo "--------------------------------------------------------\n\n" >> $log
exit 3
fi
#-- 压缩 --#
nowtime=`date +"%Y%m%d %H:%M:%S"`
echo "--> 4-1 $nowtime compress begin" >> $log
compress $BACKUPDIR/$tarfile
res=$?
if [ "$res" = "0" ]
then
echo "--> 4-2 compress ok (res=$res)" >> $log
cd $BACKUPDIR
rm -rf $dayDir
else
echo "--> 3-3 compress fail (res=$res)" >> $log
echo "--------------------------------------------------------\n\n" >> $log
exit 4
fi
echo "--> 5 Delete files of $ddays days before " >> $log
find $BACKUPDIR -mtime +$ddays -name "MBFEDB_BT_*.Z" >> $log
find $BACKUPDIR -mtime +$ddays -name "MBFEDB_BT_*.Z" | xargs -i /bin/rm {}
ftp -i -n 10.8.7.100 <
user coredb coredb
bin
put $zfile
bye
!
res=$?
echo "--> 6 backup success (res=$res)" >> $log
echo "--------------------------------------------------------\n\n" >> $log
exit 0
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22661144/viewspace-1430690/
,如需转载,请注明出处,否则将追究法律责任。