安装完svn后,做如下操作:
复制代码代码示例:
rm -rf /usr/bin/svnadmin
rm -rf /usr/sbin/svnadmin rm -rf /usr/bin/svnlook rm -rf /usr/sbin/svnlook ln -s /usr/local/svn/bin/svnadmin /usr/bin/svnadmin ln -s /usr/local/svn/bin/svnadmin /usr/sbin/svnadmin ln -s /usr/local/svn/bin/svnlook /usr/bin/svnlook ln -s /usr/local/svn/bin/svnlook /usr/sbin/svnlook svnadmin svnlook 需要写入 /usr/bin 直接调用。
1,文件 svnbak.sh
复制代码代码示例:
#!/bin/ksh
PROJECT_PATH=/svn-bak
BEGIN=`cat $INDEX_FILE`
FILENAME=svn-bak_$BEGIN-$ENDNO.dmp
#NUMNO=`echo "$NUMNO + 1"|bc`
2,真实文件中的备份脚本
复制代码代码示例:
#!/bin/ksh
PROJECT_PATH=/home/svn
BEGIN=`cat $INDEX_FILE`
FILENAME=svn-bak_$BEGIN-$ENDNO.dmp
#NUMNO=`echo "$NUMNO + 1"|bc`
加其它用户的可执行权限:
复制代码代码示例:
chmod o+x svnbak.sh
问题:
复制代码代码示例:
./svnbak.sh
svnadmin: Try 'svnadmin help' for more info svnadmin: Revisions must not be greater than the youngest revision (7)
解决:
备份 : 每天都做增量备份
复制代码代码示例:
./svnbak.sh
恢复 : 将这些备份 一个一个的导入SVN库里
复制代码代码示例:
gzip -d svn-bak_1-8.dmp.gz
gzip -d svn-bak_9-9.dmp.gz svnadmin load /home/svn3 < svn-bak_1-8.dmp svnadmin load /home/svn3 < svn-bak_9-9.dmp 等 ...
通过测试
复制代码代码示例:
[root@jbxue svnbak]# ls
[root@jbxue svnbak]# ll
[root@jbxue svnbak]# gzip -d svn-bak_1-8.dmp.gz
gzip 参数信息
-c,--stdout 将解压缩的内容输出到标准输出,原文件保持不变
-d,--decompress 解压缩 -f,--force 强制覆盖旧文件 -l,--list 列出压缩包内储存的原始文件的信息(如,解压后的名字、压缩率等) -n,--no-name 压缩时不保存原始文件的文件名和时间戳,解压缩时不恢复原始文件的文件名和时间戳(此时,解出来的文件,其文件名为压缩包的文件名) -N,--name 压缩时保存原始文件的文件名和时间戳,解压缩时恢复原始文件的文件名和时间戳 -q,--quiet 抑制所有警告信息 -r,--recursive 递归 -t,--test 测试压缩文件完整性 -v,--verbose 冗余模式(即显示每一步的执行内容) -1、-2、...、-9 压缩率依次增大,速度依次减慢,默认为-6
计划任务
复制代码代码示例:
crontab -e
i0 9 * * * sh /home/svnbak/svnbak.sh 每天 09:00 执行 备份脚本 就介绍这些吧,希望有助于大家理解svn进行增量备份的方法。 (责任编辑:IT) |