rsycn服务配置实验记录

目的:为了容易实现网站内容的镜像同步
网络环境:
(公司局域网)
server:10.10.101.157
client:10.10.100.48

一,软件下载安装(我们装的版本是rsync-2.6.9.tar.gz)
1.从原始网站下载:http://rsync.samba.org/ftp/rsync/
2.#./configure
#make
#make install
说明一点,客户机和服务器都要安装rsync。客户机以客户端方式运行rsync,服务器端以服务器方式运行rsync,它监听873端口。
3.运行rsync
/usr/local/bin/rsync --daemon
验证启动是否成功:
netstat -na|grep 873

二,服务端配置
10.10.101.157
1,编辑/etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = no
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
max connections = 4

[www]
path = /home/faga
comment = BACKUP WWW
ignore errors
read only = yes
list = no
auth users = faga
hosts allow=10.10.100.48
secrets file = /etc/rsyncd.secrets

2,生成验证证文件
#echo "rsync:rsync_password" >> /etc/rsyncd.secrets
#echo "faga:123456" >> /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

三,客户端测试
10.10.100.48
mkdir /tmp/faga
rsync -vzrtopg --progress --delete faga@10.10.101.157::www /tmp/faga
运行后要求输入密码,之后就开始同步镜像.
说明:
这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后面的faga@ip中,faga是指定密码文件中的用户名,之后的::www是模块名,也就是在/etc/rsyncd.conf中自定义 的名称。最后的/tmp/faga是备份到本地的目录名

四,使用rsync+ssh方式来加密传输实现内容镜像,以在脚本中使用而无需交互式地输入验证密码

1,在10.10.100.48产生SSH私钥和公钥
#cd /root/.ssh/
#ssh-keygen -d
按「Enter」键直到最后

2,这时会在/root/.ssh/目录下看到两个文件id_dsa與id_dsa.pub,将id_dsa.pub复制到10.10.101.157/root/.ssh/目录下并改名为authorized_keys2
#scp /root/.ssh/id_dsa.pub 10.10.101.157:/root/.ssh/authorized_keys2

3,在10.10.100.157执行:ssh 10.10.100.157 ,看看能否登陆不需要输入密码

4,在10.10.100.48执行镜像操作
rsync -avlR --delete -e ssh 10.10.101.157:/home/faga /   --(拉)
rsync -avlR --delete -e ssh /www 10.10.101.157:/         --(推)
参数说明:
如果不想包含某个目录/文件可以设置--exclude
-a, --archive
-v, --verbose
-l, --links
-R, --relative
--delete
是指如果Server端刪除了一文件,那客户端也相应把这一文件刪除,保持真正的一致
-e ssh
建立起加密连接

注:可以做成脚本执行.以上方法可以用于分发更新的站点内容,实现站点内容同步更新,只需要灵活使用即可.