一、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. 可以镜像保存整个目录树和文件系统;
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6. 支持匿名传输,以方便进行网站镜像。
在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。
无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。
rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
二、服务端和客户端安装rsync服务
1. 检查rsync 是否已经安装
rpm -qa|grep rsync
2. 安装rsync
yum install -y rsync
三、配置 rsync 服务
1. 服务端配置方式
a. 编写配置文件
[root@backup ~]# vim /etc/rsyncd.conf
##created by SouthBay
###rsyncd.conf start##
uid = rsync # 指定管理备份目录的用户
gid = rsync # 指定管理备份目录的用户组
port = 873 # 定义rsync备份服务的网络端口号
fake super = yes # 将rsync虚拟用户伪装成为一个超级管理员用户
use chroot = no # 和安全相关的配置
max connections = 200 # 最大连接数 同时只能有200个客户端连接到备份服务器
timeout = 300 # 超时时间(单位秒)
pid file = /var/run/rsyncd.pid # 记录进程号码信息 1.让程序快速停止进程 2. 判断一个服务是否正在运行
lock file = /var/run/rsync.lock # 锁文件
log file = /var/log/rsyncd.log # rsync服务的日志文件 用于排错分析问题
ignore errors # 忽略传输中的简单错误
read only = false # 指定备份目录是可读可写
list = false # 使客户端可以查看服务端的模块信息
hosts allow = 172.16.1.0/24 # 允许传输备份数据的主机(白名单)
hosts deny = 0.0.0.0/32 # 禁止传输备份