一、介绍: 不想看可以跳过
Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync本来是用以取代rcp的一个工具,它当前由 rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。
Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync的基本特点如下:
1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.无须特殊权限即可安装;
4.优化的流程,文件传输效率高;
5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6.支持匿名传输。
二、安装服务端客户端
实验使用的系统为:centos 6.2 32位 (192.168.5.180{server} 192.168.5.181{client} )
①:检查下是否系统已经安装了
这里已经安装成功了。
如果没有安装,可以到 http://rsync.samba.org/ftp/rsync/ 下载
然后编译安装下
# tar -zxvf rsync-3.0.9.tar.gz |
# ./configure
# make && make install
②: 服务端配置文件的配置
可以看到rysnc服务是关闭的(disable = yes),这里把它开启,把disable的值改为no。
③:创建rsync服务器配置文件/etc/rsyncd.conf
[root@hyj etc]# vim /etc/rsyncd.conf
uid = root
gid = root
hosts allow = 192.168.05.181 #允许访问的客户机
#hosts deny = 0.0.0.0/32 #拒绝访问的
use chroot = no
max connections = 1
timeout=
##下面这些绿色文件是安装完RSYNC服务后自动生成的文件,当然也可以手动配置到指定路径
pid file = /var/run/rsyncd.pid ##pid文件的存放
lock file = /var/run/rsync.lock ##锁文件的存放位置
log file = /var/log/rsyncd.log ##日志记录文件的存放
#motd file = /etc/rsyncd.motd #欢迎
##上面这段是全局配置,下面的模块可以有
ignore errors ## 忽略 IO
read only = yes
secrets file = /etc/rsync.passwd ## 指定认证文件
[]# vim /etc/rsync.passwd
(1) : fynsd:701123 ##用户名:密码。注意这个不是系统用户,只是rsync用户。所以不用useradd。
(名字随便写,只要和上边配置文件里的“auth users”参数一致即可),格式(一行一个用户)
账号:密码
(2)、把密码文件的权限改成600
[root@hyj etc]# chmod 600 /etc/rsync.passwd ##只能所有者可读,否则报错
wu ⑤:启动rsync 服务
#/usr/bin/rsync --daemon
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 28651 root 4u IPv4 1328410 0t0 TCP *:rsync (LISTEN)
rsync 28651 root 5u IPv6 1328411 0t0 TCP *:rsync (LISTEN) 设置下开机自动启动
⑥: 客户端安装跟服务端一样(只需要创建下配置文件 /etc/rsyncd.conf配置文件)
检查端口启动情况:
⑦:实验
Rsync的命令格式可以为以下六种:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync [OPTION]... [USER@]HOST::SRC DEST
从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
如:rsync -av [email protected]::test /tmp
rsync [OPTION]... SRC [USER@]HOST::DEST
从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
如:rsync -av /tmp [email protected]::test
进行验证。上面验证的时候需要输入密码;此时可以使用下面的命令来实现
#/usr/bin/rsync -vzrtopg --delete --progress [email protected]::test /usr/local/share/rsync_backup --password-file=/etc/rsync.pass
上面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数(也可以用直接用a来代替rtopg,a为--archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD)。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
基本功能已经可以实现,详细的还需要进一步的配置。如有不足之处,望大家指出,一起学习!!!
参考资料:http://uplook.blog.51cto.com/443306/394705
http://spring129.blog.51cto.com/705246/145095
rsyncd.conf详细配置:http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc