项目由于是集群配置(4台),负载均衡F5,而且一开始没有考虑图片服务器,所以上传图片功能导致图片不知道上传到那台服务器上,只能临时抱佛脚用rsync做互为同步功能。
[root@Hammer home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包
rsync-2.6.8-3.1
[root@Hammer CentOS]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装
[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync
1 配置rsync servervi /etc/xinetd.d/rsync
将disable=yes改为no
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
2 配置rsync自动启动
[root@test etc]# chkconfig rsync on
[root@test etc]# chkconfig rsync --list
rsync on
3 建立文件夹:
mkdir -p /etc/rsyncd/
mkdir -p /home/aa
4 建立配置主文件:vim /etc/rsyncd/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
# port = 873
uid = root
gid = root
use chroot = no
read only = yes
max connections = 5
#hosts allow = *
#hosts deny = *
[aa]
path = /home/aa
ignore errors
list = no
auth users = root,koko
secrets file = /etc/rsyncd/rsyncd.secrets
exclude = new/ asdfg/
5. 编辑密码文件,它是一个明文的文本文件:vim /etc/rsyncd/rsyncd.secrets
root:123
koko:123
保存后修改文件权限:chmod 600 /etc/rsyncd/rsyncd.secrets
6. 启动:/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
7,检查rsync是否启动 873端口
[root@test home]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 4396 root 5u IPv4 633387 TCP *:rsync (LISTEN)
或者可以查看是否有873端口:netstat -naltp
8,启动配置
[root@test home]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
客户端配置
在客户端建立已经文件保存rsync服务端用户密码,
# vim /etc/rsyncko.pass
#服务端密码文件定义的密码即可 在这里设置两个密码 请看第5步骤
123
123
保存后修改文件权限:chmod 600 /etc/rsyncko.pass
客户机同步服务器命令:
rsync -vzrtopg --progress --delete root@192.168.1.1::aa /home/aa --password-file=/etc/rsyncko.pass
执行之后即可同步完成,但是在这里我遇到一个问题,抛出异常
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(614) [receiver=2.6.8]
解决办法:
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
即可解决