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
!