使用svn做文件备份配置
1、#在备份服务器上创建svn 库
svnserve -d -r 目录 启动SVN
svnadmin create SVNROOT;
SVNROOT/conf/authz 配置帐号权限
SVNROOT/conf/passwd 配置密码
SVNROOT/conf/svnserve.conf 配置验证
如需要迁移SVN
No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > svn_dump
No.2 在新的服务器上创建新的仓库 命令: svnadmin create SVNROOT
No.3 导入刚导出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump
2、创建备份脚本
#!/bin/sh
echo "==========Backup began at:"
date
shPath="$(dirname "$0")"
bkRoot=$shPath/../restricted
dbPath=$bkRoot/dbbak
dbName=$1
password=$2
mkdir -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.sql
svn --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 --pass
word $password --non-interactive add --depth infinity --parents
svn --username svn用户名 --password $password --non-interactive ci --depth infinity -m "" $bkRoot
svn --username svn用户名 --password $password --non-interactive status --depth infinity $bkRoot | grep ! | cut -c 9- | xargs --no-run-if-empty svn --username hqouc --pas
sword $password --non-interactive delete
svn --username svn用户名 --password $password --non-interactive ci --depth infinity -m "" $bkRoot
echo "===========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密码