Linux 下SVN 项目数据备份,其它数据备份参考

Shell 备份脚本

#!/bin/bash
#
# 前提:
#  1. 在数据服务器上安装 vsftpd : [yum -y install vsftpd],
#     并创建用户 [useradd svn; password svn => svn198910]
#  2. 在客户机上安装 ftp : [yum -y install ftp]
#
# 效果:
#   Linux 定时任务实现:30天自动备份一次,并删除30天之前的备份文件


SVNDIR=/data/svn
SVNADMIN=/usr/bin/svnadmin
DATE=`date +%Y-%m-%d`
OLDDATE=`date +%Y-%m-%d -d '30 days'`
BACKDIR=/data/backup/svn-backup
# SVN项目名
PROJECT_ARRAY="myproject official analysis mypharma"
# 备份临时目录与日志文件
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
LogFile=${BACKDIR}/svnbak.log
[ -f ${LogFile} ] || touch ${LogFile}
mkdir ${BACKDIR}/${DATE}
# 进入SVN目录,打包项目数据
for PROJECT in ${PROJECT_ARRAY}
do
    cd ${SVNDIR}
    ${SVNADMIN} hotcopy ${PROJECT} ${BACKDIR}/${DATE}/${POJECT} --clean-logs
    cd ${BACKDIR}/${DATE}
    tar -zcvf ${PROJECT}_svn_${DATE}.tar.gz ${PROJECT} > /dev/null
    rm -rf ${PROJECT}
    sleep 2
done
# 定义FTP使用的参数
HOST=192.168.56.230
FTP_USERNAME=svn
FTP_PASSWORD=svn198910

cd ${BACKDIR}/${DATE}
# 开启FTP数据备份
ftp -i -n -v << !
open ${HOST}
user ${FTP_USERNAME} ${FTP_PASSWORD}
bin
cd ${OLDDATE}
mdelete *
cd ..
rmdir ${OLDDATE}
mkdir ${DATE}
mput *
bye
!