rsync 同步推送详细配置

来源:互联网 发布:cmm 软件开发过程 编辑:程序博客网 时间:2024/06/05 00:15

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
 1、可以镜像保存整个目录树和文件系统。
 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
 3、无须特殊权限即可安装。
 4、优化的流程,文件传输效率高。
 5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
 6、支持匿名传输。

二、版本选择
目前CentOS5中自带的rsync版本都是2.6.x的版本,该版本存在的问题主要是性能方面的,比如,同步大量小文件时容易出现内存溢出或同步中断等现象,这主要与其2.6版本采用先列文件列表,再进行同步的处理机制有关,在处理大文件同步时也市场发生同步文件不完整的现象,所以我们在使用rsync之前,应该卸载老版本,安装最新的稳定版本,对各种已知bug修复还是挺有效的,比如3.0以后的版本处理机制上就改成了一边列表的同时进行文件同步,大大改善了性能和降低了出错几率。目前最新的版本是3.0.7。

三、升级步骤(其实centos默认的2.6* 也能用, 不升级的直接跳过 步骤3和4
 1。卸载当前rsync的安装包版本:
  a。首先查看rsync命令的所在位置:which rsync 。 witch命令会从$PATH环境变量中,按照先后顺序,找出最先搜索到的rsync命令所在路径,无论你的系统里有多少个rsync命令,这个which的结果才是你在命令行中使用rsync命令式时用到的那个一。例如:/usr/bin/rsync
  b。然后查看该命令属于哪个安装包:rpm -qf /usr/bin/rsync 。 例如:rsync-2.6.8-3.1
  c。卸载:rpm -e rsync-2.6.8-3.1

四、Yum 安装yum -y install rsync-3.*

五、具体配置

主配置文件 /etc/rsyncd.conf (一般这个文件没有自己手动创建)

uid = root#运行RSYNC守护进程的用户

gid = root#运行RSYNC守护进程的组

max connections = 10#最大连接数不限

use chroot = no#不使用chroot

log file = /var/log/rsyncd.log #日志记录文件

log format = %t %a %m %f %b #日志记录格式

pid file = /var/run/rsyncd.pid #pid文件的存放位置

lock file = /var/run/rsyncd.lock #锁文件的存放位置

timeout = 300

port = 873 #默认端口873

 

#这里是认证的模块名,在client端需要指定

[web] 

path = /data/www/ppho.cn #需要做镜像的目录,由于我们采用推的方式,所以这个目录代表源主机推过来的文件放在哪里

list = yes  #允许列文件

comment = rsync software #这个模块的注释信息 

ignore errors = yes # 可以忽略一些无关的IO错误

read only = no  # 关闭只读

hosts allow = 192.168.1.37 # 允许哪些主机访问 多个主机空格隔开

hosts deny = *  # 禁止哪些主机访问

auth users = test  # 验证用户名

secrets file = /etc/rsync.pass  # 密码存放文件  timeout = 300

 密码验证文件

/etc/rsync.pass 例如:用户:密码  一行一个用户

rsync 同步推送详细配置 - 安时代 - 理想时代

 

 

权限:因为rsync.pass存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pass设置为root拥有, 且权限为600

#cd /etc
#chown root.root rsync.pass 
#chmod 600 rsync.pass

修改/etc/xinetd.d/rsync配置文件  

disable = yes改成disable = no

service rsync
{
        disable = no #开启服务
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

 

六、启动rsync server

#/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

关闭防火墙

rsync服务器和防火墙

  Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。

  #iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
  #iptables -L  查看一下防火墙是不是打开了 873端口

如果你不太懂防火墙的配置,可以先service iptables stop 将防火墙关掉。当然在生产环境这是很危险的,做实验才可以这么做哟!

 

客户端服务器配置

 rsync 同步推送详细配置 - 安时代 - 理想时代

 

新建 /etc/rsync.pass 密码文件(里面只放密码要对应服务器端的 test账号的密码

同步语句 

rsync -atuzrRp --progress --password-file=/etc/rsync.pass test.php test@192.168.4.105::web/ 

 

rsync -atuzrRp(参数类似更新什么的) --progress(显示文件信息--password-file=/etc/rsync.pass(对应的密码test.php(推送的目录或文件) test@192.168.4.105::web/ (账号@主服务器::模块)

也可以写到shell脚本里面

 rsync 同步推送详细配置 - 安时代 - 理想时代

 

 

 

 

0 0
原创粉丝点击