windows2008和Centos7.0通过Rsync来实现通过更新(备份)

Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。支持Linux,Window平台。写本文的时候,window版最新版为4.0.5版

官网:http://rsync.samba.org/

Linux版下载:http://rsync.samba.org/download.html

Windows版下载:https://www.itefix.no/i2/cwrsync-get 选(Free Edition 免费版)

客户端:cwRsync_4.0.5_Installer

服务端:cwRsyncServer_4.0.5_Installer

第一步: 环境说明

Windows Service 2008 作为服务器端

Centos 7.0 作为客户端

第二步: 安装Rsync服务器软件

运行cwRsyncServer_4.0.5_Installer.exe进行安装

默认安装路径为  C:\Program Files\ICW\

不要修改路径,之前估计是修改了路径,导致安装不成功,默认安装就行,安装过程中有一步比较重要的地方

会要求输入用户名 两次密码, 这里不是创建密码 而是输入rsync登陆windows系统的账号密码

20141017221757

 

在这里输入你要设置的用户名和密码,这个在两台机器使用rsync相互通信时会使用到的用户名和密码的。

创建过程中若出现安全软件拦截时,要让安全软件允许这样操作,这样才能正常创建成功。

第三步: 配置Rsync

配置C:\Program Files\ICW\rsyncd.conf文件

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log

port = 873

uid=0  # uid和gid要添加,否则会报:@ERROR: invalid uid nobody

gid=0  # rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.2]  的错误信息

# Module definitions

# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

#

[backup] #这个模块名可以随意命名

path = /cygdrive/d/work  #要同步的文件路径,代表d:\work目录

read only = false

transfer logging = yes

list  = no

hosts allow = *

auth users = rsync      #rsync用户 仅这个账户可以同步该配置下文件

secrets file = etc/rsyncd.secrets  #rsync登陆用户文件 记录rsync时需要输入的账号密码

 说明: 

path 路径并不是文件路径,而是用/cygdrive/(文件路径),否则会报错,提示找不到对应的文件或者文件夹

例如: (已备份网站源码以及备份网站数据库为例)

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
port = 873
uid = 0
gid = 0

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[515aaa]
path = /cygdrive/d/websoft/www/xingyishu
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = 515aaa
secrets file = etc/rsyncd.secrets

[515aaaDataBase]
path = /cygdrive/c/ProgramData/MySQL/MySQL Server 5.1/data/xingyishu
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = 515aaa
secrets file = etc/rsyncd.secrets

然后再创建密码文件(etc/rsyncd.secrets)

格式: 用户名:密码

20141017222657

 

说明:

这个用户名和密码就是一开始安装时所建立的用户名和密码的。

第四步: 启用Rsync服务

服务器管理器-工具-服务 其他版本的windows可以用控制面板-管理工具-服务

找到服务rsyncserver (如果没有这个服务 应该是你用户名密码那你输入有问题 卸载了重新装一次)

将rsyncserver设置为自动启动 并启动服务

20141017223044

 

说明:

若使用过程中有配置文件的修改也要对这个服务进行重启。

第五步: 配置Rsync客户端(centos 7.0)

正常的话linux机器都会自带rsync。如何查询centos 7.0是否安装了rsync软件?

20141017223607

 

如果木有安装,请自行安装。

首先在/etc/目录下给客户端添加密码文件

20141017223927

 

说明:

名称以及后缀自定义,内容为对应的密码

然后把这个文件设置为600的权限

chmod 600 rsyncd_515aaa.scrt

配置客户端后,就可以进行rsync同步测试。

第六步: 让rsync 客户端自动与服务器同步数据

自动执行命令,需要用到crontab命令来定时执行任务。

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

08090352-4e0aa3fe4f404b3491df384758229be1

 

创建2个shell文件来执行备份(515aaaCode.sh:源码备份;515aaaBaseData.sh:数据库备份)

代码: 515aaaCode.sh

#!/bin/sh
#515aaa Code BackCode - Jhonse
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd_515aaa.scrt 515aaa@服务器地址::515aaa(模块名称)  /data/code/$(date +'%Y-%m-%d')

代码: 515aaaBaseData.sh

#!/bin/sh
#515aaa DataBase Backup
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd_515aaa.scrt 515aaa@服务器地址::515aaaDataBase(模块名称)  /data/database/$(date +'%Y-%d-%m')

代码: crontab命令

20 22 * * * . /data/command/515aaaCode.sh
20 22 * * * . /data/command/515aaaDataBase.sh

可以采用 crontab -e 来编辑

查看的话直接用crontab -l

20141017225531

 

第七步: 效果图

20141017225753

 

 

Author: jhonse

Jhonse技术博客: http://blog.jhonse.com

One thought on “windows2008和Centos7.0通过Rsync来实现通过更新(备份)”

Leave a Reply

Your email address will not be published. Required fields are marked *