Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。
Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它当前由 http://rsync.samba.org维护。
Rsync的基本特点如下:
1. 可以镜像保存整个目录树和文件系统;
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6. 支持匿名传输,以方便进行网站镜像。
在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。
无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。
rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
可以通过yum安装
yum install rsync
也可以通过编译安装
rysnc的官方网站:http://rsync.samba.org可以从上面得到最新的版本。
注:在用源码包编译安装之前,您得安装gcc等编译开具才行
tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure --prefix=/usr make && make installrsync的主要有以下三个配置文件:
rsyncd.conf(主配置文件)rsyncd.passwd(密码文件)rsyncd.motd(rysnc服务器信息)服务器配置文件(/etc/rsyncd/rsyncd.conf),该文件默认不存在,请创建:
在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf 、rsyncd.passwd、rsyncd.motd文件
mkdir rsyncd
创建文件
touch rsyncd.conf touch rsyncd.passwd touch rsyncd.motd chmod 600 rsyncd.pwsswd #为了密码的安全性,我们把权限设为600rsyncd.passwd的内容格式用户名:密码
root:123456
**注意: 将rsyncd.passwd这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读**
rsyncd.motd 文件类似ftp服务器登录时,我们所看到的提示信息……,当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除
++++++++++++++++++++++++++++++++++++++++++++++ 欢迎使用 ++++++++++++++++++++++++++++++++++++++++++++++防火墙配置
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8877 -j ACCEPT
启动rsync服务
rsync --daemon --config=/etc/rsyncd/rsyncd.conf
在rsync服务器上查看提供了哪些可用的数据源。
rsync --list-only root@192.168.56.102::test_data
下载地址:http://itefix.no/cwrsync/
直接解压,到bin文件目录下执行
rsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data –port=8877 #端口root #执行数据同步的用户192.168.56.102 #服务器地址test_data #模块名称–delete #从cwRsync客户端D:\data目录中删除与Rsync服务端/home/test目录中不相同的数据,即保证两边的数据完全一致/cygdrive/d/data 表示本地的同步文件夹/d/data 为同步文件夹在cwRsync客户端的任务计划中添加批处理脚本文件,每天凌晨02:30钟自动同步Rsync服务端/data/share目录中的数据到D:\data目录: cwrsync的bin目录新建passwd.txt输入密码然后保存 继续在bin目录新建samba.bat输入
@echo off echo. echo 开始同步数据,请稍等... echo. cd C:\Program Files\cwRsync\bin rsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data < passwd.txt echo. echo 数据同步完成 echo.添加批处理脚本到Windows任务计划 开始-设置-控制面板-任务计划 打开添加任务计划,下一步 浏览,选择打开C:\Program Files\cwRsync\bin目录里面的samba.bat 执行这个任务,选择每天,下一步 起始时间:02:30 运行这个任务:每天,下一步 输入Windows系统管理员的登录密码,下一步 完成! CentOS Rsync服务端与Windows cwRsync客户端实现数据同步完成!
参考地址:
http://yanghuawu.blog.51cto.com/2638960/1020297
https://my.oschina.net/alexnine/blog/668240
http://www.cnblogs.com/mchina/p/2829944.html
