本文章来给大家介绍关于windows通过rsync定期备份下svn目录到linux实现方法,有需要了解的朋友可参考参考。
大体思路是:
先把 windows 下的 svn 目录导出到一个文件夹中(这样不会有多余的 .svn 目录存在), 然后再通过 winRAR 将这个目录打包成 *.rar 文件, 再然后通过 rsync 命令将这个打包好的文件同步到 linux 服务器.
先介绍一下基本环境.
| 代码如下 | 复制代码 |
|
#IP地址: |
|
#windows下相关软件安装目录:
| 代码如下 | 复制代码 |
| svn 安装目录 D:\Program Files\svn-win32-1.6.16\bin\svn.exe winRAR 安装目录 C:\Program Files\WinRAR\WinRAR.exe rsync 安装目录 D:\Program Files\cwRsync\bin\rsync.exe OK, 开始操作吧. |
|
1, linux 下的 rsync 安装可以参考这里:
| 代码如下 | 复制代码 |
|
|
|
Ubuntu下可以直接用命令安装:
| 代码如下 | 复制代码 |
| sudo apt-get install rsync |
|
2, 配置 linux 上的 rsync-server
| 代码如下 | 复制代码 |
|
#创建目录和文件 [snsgamebak] |
|
3, 启动 rsync-server
| 代码如下 | 复制代码 |
| /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #检查一下 ps -ef | grep rsync |
|
4, windows 下的 rsync 软件( cwRsync_4.1.0_Installer.zip )可以到这里去下载:
| 代码如下 | 复制代码 |
http://sourceforge.net/projects/sereds/files/cwRsync/4.1.0/ |
|
5, 配置 windows 上的 rsync
| 代码如下 | 复制代码 |
| #修改配置文件内容 # e:/ggg/rsyncd.secrets 内容如下 123456 |
|
6, 测试一下将 windows 上 e:/ttt/ 目录下的所有文件及子目录 rsync 到 linux 服务器
| 代码如下 | 复制代码 |
| D: cd "Program Files/cwRsync/bin/" rsync -r /cygdrive/e/ttt/ root@192.168.1.132::snsgamebak --password-file=/cygdrive/e/ggg/rsyncd.secrets |
|
说明:
因为在 rsync 命令中冒号:有特殊意义, 所以上面的命令中 E: 盘用 /cygdrive/e 表示.
命令中的 snsgamebak 对应的是 linux 上 /etc/rsyncd/rsyncd.conf 中的 [snsgamebak]
上面的命令会将 e:/ttt/ 目录下的所有文件及子目录同步到 linux 服务器上的 /home/backup/socialgame/ 目录下.
7, 编写 bak_rsync.bat 程序,
实现的功能是将 svn 目录(E:\www\game) 先更新
然后再导出到备份目录(E:\ggg\bak\20110608\), 备份目录是自动生成的.
再调用 winrar 将备份目录压缩成 rar 文件, 并删除掉备份目录
再将 rar 文件 rsync 到 linux 服务器
最后删除本地备份 rar 文件, 并返回主目录
bak_rsync.bat 文件内容如下
| 代码如下 | 复制代码 |
|
@echo ======[ 开始备份 ]====== set svntool="D:\Program Files\svn-win32-1.6.16\bin\svn.exe" set filename=bak_%date:~0,10% @echo 1, 更新svn目录 @echo 2, 寻出svn目录到备份文件夹 @echo 3, 检查是否有同名的备份文件, 如果 | |

