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 !