一、rsync 简介
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. 可以镜像保存整个目录树和文件系统;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6. 支持匿名传输,以方便进行网站镜像。
在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。
无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。
rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
rsync生产常用参数
参数 | 说明 | 默认值 |
---|---|---|
exclude | 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 exclude 列表中。这等同于在客户端命令中使用 �Cexclude 来指定模式。 | 空 |
exclude from | 指定一个包含 exclude 规则定义的文件名,服务器从该文件中读取 exclude 列表定义。 | 空 |
include | 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 include 列表中。这等同于在客户端命令中使用 �Cinclude 来指定模式 。 | 空 |
include from | 指定一个包含 include 规则定义的文件名,服务器从该文件中读取 include 列表定义。 | 空 |
以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能)
二、rsync服务器应用案例
A、rsync服务器部署
1.安装两种方式
(1)、yuminstall-yrsync###在线安装rsync (2)、wgethttp://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm rpm-ivhrsync-3.0.9-2.el6.rfx.x86_64.rpm###下载rsync软件包之后rpm安装
2.查看是否安装成功
[root@Adata]#rpm-qarsync###查看是否安装成功 rsync-3.0.6-12.el6.x86_64
3.创建rsync主配置rsyncd.conf文件
[root@Adata]#vi/etc/rsyncd.conf #rsync_config___________start #createdbydonglq16:012016-12-09 ##rsyncd.confstart## uid=nobody gid=nobody usechroot=no maxconnections=200 timeout=300 pidfile=/var/run/rsyncd.pid lockfile=/var/run/rsync.lock logfile=/var/log/rsyncd.log [donglq] path=/donglq/ ignoreerrors readonly=false list=false hostsallow=192.168.0.0/24 hostsdeny=0.0.0.0/32 authusers=rsync_backup secretsfile=/etc/rsync.password [data] path=/data/ gnoreerrors readonly=false list=false hostsallow=192.168.0.0/24 hostsdeny=0.0.0.0/32 authusers=rsync_backup secretsfile=/etc/rsync_data.password ##rsyncd.conf___________end
echo"rsync_backup:123456">/etc/rsync.password chmod600/etc/rsync.password echo"rsync_backup:123456">/etc/rsync_data.password chmod600/etc/rsync_data.password
[root@Adata]mkdir/donglq [root@Adata]mkdir/data [root@Adata]chmod600/donglq/data [root@Adata]chownnobody.nobody/data/donglq
6.rsync --daemon ###daemon模式启动rsync
[root@Adata]#netstat-lntup|grep873###查看rsync是否启动 tcp000.0.0.0:8730.0.0.0:*LISTEN1380/rsync tcp00:::873:::*LISTEN1380/rsync
B、rsync客户端部署
1. 安装
yuminstall-yrsync###在线安装rsync
2. 查看是否安装成功
netstat-lntup|grep873
3. 创建密码文件
echo"123456">/etc/rsync.password 4chmod600/etc/rsync.password echo"123456">/etc/rsync_data.password chmod600/etc/rsync_data.password
C、rsync调试
[root@B~]#rsync-avzrsync_backup@192.168.129.128::donglq/data/--password-file=/etc/rsync.password receivingincrementalfilelist ./ 1 10 2 3 4 5 6 7 8 9 .ICE-unix/ sent261bytesreceived570bytes1662.00bytes/sec totalsizeis0speedupis0.00 [root@Cdata]#rsync-avzrsync_backup@192.168.129.128::data/data/--password-file=/etc/rsync_data.password receivingincrementalfilelist ./ 1.txt/ 1/ sent73bytesreceived156bytes458.00bytes/sec totalsizeis0speedupis0.00
配置完毕
注意事项:
在整个安装过程中,能拷贝的参数尽量不要用手输,防止出错。密码文件及模块文件夹权限要设置好。
谨慎细心一点是不会有问题的。
参考:
http://blog.csdn.net/wjciayf/article/details/51812369
原文链接:https://www.f2er.com/centos/379517.html