1、#在备份服务器上创建svn 库svnserve -d -r 目录 启动SVNsvnadmin create SVNROOT;SVNROOT/conf/authz 配置帐号权限SVNROOT/conf/passwd 配置密码SVNROOT/conf/svnserve.conf 配置验证如需要迁移SVNNo.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > svn_dumpNo.2 在新的服务器上创建新的仓库 命令: svnadmin create SVNROOTNo.3 导入刚导出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump
2、创建备份脚本#!/bin/shecho "==========Backup began at:"dateshPath="$(dirname "$0")"bkRoot=$shPath/../restricteddbPath=$bkRoot/dbbakdbName=$1password=$2mkdir -p $dbPath/usr/bin/mysqldump -h 127.0.0.1 -u root -p密码 --databases $dbName --default-character-set=latin1 --opt --single-transaction --character_sets_dir=/usr/share/mysql/charsets/ -c --set-charset --hex-blob --skip-dump-date -r$dbPath/full_data.sqlsvn --username svn用户名 --password $password --non-interactive add -q --depth infinity --parents $bkRoot/*svn --username svn用户名--password $password --non-interactive status --depth infinity $bkRoot | grep ?| cut -c 9- | xargs --no-run-if-empty svn --username hqouc --password $password --non-interactive add --depth infinity --parentssvn --username svn用户名--password $password --non-interactive ci --depth infinity -m "" $bkRootsvn --username svn用户名--password $password --non-interactive status --depth infinity $bkRoot | grep ! | cut -c 9- | xargs --no-run-if-empty svn --username hqouc --password $password --non-interactive deletesvn --username svn用户名--password $password --non-interactive ci --depth infinity -m "" $bkRootecho "===========Backup ended at:"date另存为 backup.sh 并为此脚本添加可执行权限将上面的svn用户名 替换为你自己的 svn 用户bkRoot 为需要备份的目录dbPath 为数据库目录
3、在要备份的restricted目录下检出 SVN 备份的版本并添加计划任务来实现自动备份crontab -e添加这一行:1 4 * * * /你的脚本实际存放位置/backup.sh database svnpwd >> /backup.log 2>&1#每天4:1分执行一次备份,并将日志输入到 /backup.log 中其中.../backup.sh database svnpwd 第一个参数为数据库名,第二个为SVN密码