介绍
Rsync(remote sync)是类unix系统下的数据镜像备份工具,支持大多数的类unix系统,无论是Linux、Solaris还是BSD,都经过了的测试,现在也有支持windows下的rsync(cwRsync)也已经测试通过,rsync 是一个节约带宽的备份方案,不像传统的 ftp 会下载所有的文件,不管是否有更新,而 rsync 只下载那些做了更新的数据。它的特性如下:
●.可以镜像保存整个目录树和文件系统。
●. 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
●. 无须特殊权限即可安装。
●. 优化的流程,文件传输效率高。
●. 支持匿名传输
何时选择Rsync
通过ssh用tar 为文件系统的某部分建立远程副本是非常理想的,而rsync则更适合用来使两台机器之间保持文件系统的同步。一般说来,tar 用于最初的副本,而rsync 则用于获取自最后一份副本以来所发生的更改。这是因为不存在任何目标文件时,tar 可能比rsync 速度更快,但是当两个文件系统之间的差异很小时,rsync 会比tar 快得多
Rsync 安装
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-2.6.7.tar.gz
安装路径:/usr/local/rsync
下载地址:http://rsync.samba.org/ftp/rsync/rsync-2.6.7.tar.gz (740K)
安装过程:
tar xvzf rsync-2.6.7.tar.gz
cd rsync-2.6.7
./configure --prefix=/usr/local/rsync
make
make install
参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了
Rsync配置
/etc/rsyncd.conf (默认是没有的,可以手工创建)
#全局选项
strict modes =yes #是否检查口令文件的权限
port = 873 #默认端口873
log file = /var/log/rsyncd.log #日志记录文件
pid file = /usr/local/rsync/rsyncd.pid #运行进程的ID写到哪里
#模块选项
[test] # 这里是认证的模块名,在client端需要指定
max connections = 5 #客户端最大连接数,默认0(没限制)
uid = livedoorcn #指定该模块传输文件时守护进程应该具有的uid
gid = livedoorcn #指定该模块传输文件时守护进程应该具有的gid
path = /home/rsync_test # 需要做备份的目录
ignore errors # 可以忽略一些无关的IO错误
read only = no #no客户端可上传文件,yes只读
write only = no #no客户端可下载文件,yes不能下载
hosts allow = * #充许任何主机连接
hosts deny = 10.5.3.77 #禁止指定的主机连接
auth users = livedoorcn # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /usr/local/rsync/rsyncd.scrt # 指定认证口令文件位置
生成rsync密码文件
在server端生成一个密码文件/usr/local/rsync/rsyncd.scrt
vi rsyncd.scrt
---------content----------
livedoorcn:******
----------end-------------
注意:密码文件的权限,是由rsyncd.conf里的参数
strict modes =yes/no 来决定
Rsync 的启动
rsycn 的启动方式有多种,我们在这里介绍以下几种:
●. 守护进程方式:
/usr/local/rsync/bin/rsync --daemon
●.inetd方式:
在/etc/services中加入:
rsync 873/tcp
然后在/etc/inetd.conf中加入:
rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon
●.加入rc.local(FreeBSD)
编辑/etc/rc.d/rc.local,在最后添加:
/usr/local/bin/rsync --daemon
验证启动是否成功
ps -aux |grep rsync
root 59120 0.0 0.2 1460 972 ?? Ss 5:20PM 0:00.00 /usr/local/rsync/bin/rsync –daemon
netstat -an |grep 873
tcp4 0 0 *.873 *.* LISTEN
Rsync 客户端安装(我这里server和client是同一台机器)
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-2.6.7.tar.gz
安装路径:/usr/local/rsync
下载地址:http://rsync.samba.org/ftp/rsync/rsync-2.6.7.tar.gz (740K)
安装过程:
tar xvzf rsync-2.6.7.tar.gz
cd rsync-2.6.7
./configure --prefix=/usr/local/rsync
make
make install
参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了
实例演示
cd /usr/local/rsync/bin
下载文件
./rsync -vzrtopg --progress --delete livedoorcn@10.5.3.98::test /tmp/rsync
上传文件
./rsync -vzrtopg --progress --delete /tmp/rsync livedoorcn@10.5.3.98::test
Rsync 同步参数说明
-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除
Livedorocn@10.5.3.98中的livedoorcn是指定密码文件中的用户名
::test是指在rsyncd.conf里定义的模块名
/tmp/rsync是指本地要备份目录