一。环境:
OS: Fedora 8
compiler: gcc 4.2.4
perl 5.8.7
make 3.81
二、所需软件
rsync-3.0.7.tar.gz
三、安装软件
1、安装过程:tar xvzf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync
(注:如果是Unix机器,默认使用的编译器是CC,编译无法通过,需要设置为gcc:
CC=gcc ./configure --prefix=/usr/local/rsync)
make
make install
参数说明:--prefix 指定rsync要安装的目录.
2、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 = 192.168.30.2 # 禁止指定的主机连接
auth users = livedoorcn # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /usr/local/rsync/rsyncd.scrt # 指定认证口令文件位置
3、生成rsync密码文件
在server端生成一个密码文件/usr/local/rsync/rsyncd.scrt
vi rsyncd.scrt (用户:密码)
zpw:11111
注意:密码文件的权限,是由rsyncd.conf里的参数
strict modes =yes/no 来决定
4、Rsync 的启动
rsycn 的启动方式有多种,我们在这里介绍以下几种:
●. 守护进程方式:
/usr/local/rsync/bin/rsync --daemon
●.xinetd方式:
在/etc/services中加入:
rsync 873/tcp
●.加入rc.local
编辑/etc/rc.d/rc.local,在最后添加:
/usr/local/bin/rsync --daemon
5、验证启动是否成功
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
6、Rsync 客户端安装(我这里server和client是同一台机器)
安装环境:Fedora 8
所需软件:rsync-3.0.7.tar.gz
安装路径:/usr/local/rsync
下载地址:http://rsync.samba.org/
安装过程:tar xvzf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync
make
make install
参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了
7、实例演示
cd /usr/local/rsync/bin
下载文件
./rsync -vzrtopg --progress --delete [email protected]::test /tmp/rsync
上传文件
./rsync -vzrtopg --progress --delete /tmp/rsync [email protected]::test
8、Rsync 同步参数说明
-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除
[email protected]中的colin是指定密码文件中的用户名
::test是指在rsyncd.conf里定义的模块名
/tmp/rsync是指本地要备份目录