码迷,mamicode.com
首页 > 其他好文 > 详细

RSync实现双机文件同步

时间:2016-10-06 23:18:24      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:配置文件   服务器   软件包   项目   服务端   

双机同步任务操作步骤                     

:红色为注释说明的内容,绿色为示例内容,请以项目实际情况修改操作

 

1、 安装或更新相关软件包

#yum install rsync* xinetd* –y

 

2、 配置rsync服务端(提供文件同步的服务器),制定提供同步的应用条目信息

A、 配置文件实例如下

#vim /etc/rsyncd.conf                          -------------编辑rsync配置文件

uid = root                                                -------------设置进行数据传输时所使用的账户名或ID号,默认使用nobody

gid = root                                                -------------设置进行数据传输时所使用的组名称或GID号,默认使用nobody

use chroot = no                                   

max connections = 100                        -------------稍后重试的提示消息

timeout = 600                                        -------------600s连接超时

pid file = /var/run/rsyncd.pid              ------------设置rsync进程号保存名称

lock file = /var/run/rsyncd.lock            ------------设置锁文件名称

log file = /var/log/rsyncd.log                ------------设置日志文件名称,可以通过log  format 参数设置日志格式

##以上为全局配置下面为一个条目可根据需求添加多个条目

[tomcat_project]

path = /opt/appl/ project/                    ----------------同步目录的路径

##应用用户组id,和用户id

uid = 1501                                                

gid = 1500

read only = yes                                       ----------------是否允许客户端上传数据,这里设置为只读

list = yes                                                   ---------------客户端请求显示模块列表时,本模块名称是否显示,默认为ture

##允许使用该条目进行同步的主机地址加入备机和预生产主机地址

hosts allow = 172.16.0.101,172.26.0.100   

auth users = rsync                                  ---------------设置允许连接服务器的账户,账户可以使系统中不存在的用户

secrets file = /etc/rsyncd.pwd            --------------设置密码验证文件名称,注意该文件的权限要求为只读,建议权限600

 

B、 增加Rsync同步认证文件

#vim /etc/rsyncd.pwd                 ---------------设置验证文件密码

rsync:123456

 

C、 配置服务启动管理项

##vim /etc/xinetd.d/rsync

service rsync

{

##把这里的yes 改为 no

disable = no

flags           = IPv6

socket_type     = stream

wait            = no

user            = root

server          = /usr/bin/rsync

server_args     = --daemon

log_on_failure  += USERID

}


#启动rsync服务

#service xinetd start

#验证是否启动成功

#netstat –anptl | grep 873

 

D、 防火墙放行rsync服务端口

 #在vim /etc/sysconfig/iptables加入以上行

-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT 

#service iptables restart         ------------重启防火墙设置

   

3、 系统执行过setup脚本默认是限制远程访问这里需要开放客户端(同步端)的地址

#cat >> /etc/hosts.allow <<EOF

##这里的地址是同步端的

rsync:172.16.0.101:allow

EOF

服务端配置完毕!

4、 客户端(同步端)配置

A、 创建同步脚本放置目录

#mkdir -p /opt/appl/assist/rsync            

B、 创建脚本生成日志文件的放置目录

#mkdir -p /var/log/rsync

C、 在脚本放置目录下创建如下脚本

#vim rsync_172.16.0.100_project.sh

#!/bin/sh

LOG_FILE=/var/log/rsync/rsync_172.16.0.100_project_$(date +%Y-%m-%d)

loginfo()

{

echo "$(date "+%Y-%m-%d_%H:%M") [ANIHC SAYS] $1" >>$LOG_FILE

}

##For project

loginfo "==========Synchronizing=========="

loginfo "Source directory project..."

loginfo "Destination directory is /opt/appl/project"

/usr/bin/rsync -arP --delete --exclude-from=/opt/appl/assist/rsync/exclude_list_project  --password-file=/etc/rsyncd.pwd_project rsync@172.16.0.100::tomcat_project /opt/appl/project >>$LOG_FILE

loginfo "==========Synchronization done.=========="

D、 创建rsync用户认证文件

#cat /etc/rsyncd.pwd_project

##这里的密码和服务端的/etc/rsyncd.pwd中的密码一样

123456

 

E、 创建同步排除文件

##cat /opt/appl/assist/rsync/exclude_list_project

*.gz

*.tgz

*.zip

*.log

*.out

*.bak

*.tmp

log/*

logs/*

tmp/*

temp/*

##以上均为常规性同步排除可以添加指定行排除文件

 

F、 测试脚本是否可以成功同步

#cd /opt/appl/assist/rsync

##后台执行脚本并重定向输出到nohup.out文件

#nohup ./ rsync-172.16.0.100_project.sh &

##执行后检查/opt/appl 目录下是否已经有project同步过来,如果没有查看nohup.out定位错误

 

G、 如果脚本执行成功添加定时任务

 #crontab –e

#crontab –l

00 01 * * * /opt/appl/assist/rsync/rsync-172.16.0.100_project.sh > /dev/null 2>&1

常见的以下错误和相应的解决方法:

  Q:为什么我总会出现"Read-only file system"的错误呢?

    A:看看是否忘了设"read only = no"了

    Q:为什么我会出现‘@ERROR: invalid gid‘的错误呢?

    A:rsync使用时默认是用uid=nobody;gid=nobody来运行的,如果你的系统不存在nobody组的话,就会出现这样的错误,可以试试gid = ogroup或者其它

    Q:绑定端口873失败是怎么回事?
    A:如果你不是以root权限运行这一守护进程的话,因为1024端口以下是特权端口,会出现这样的错误。你可以用--port参数来改变。

    Q:为什么我认证失败?
    A:从你的命令行看来:你用的是

    > bash$ rsync -a 144.16.251.213::test test
    > Password:
    > @ERROR: auth failed on module test 
    > 
    > I dont understand this. Can somebody explain as to how to acomplish this.
    > All suggestions are welcome.

  应该是没有以你的用户名登陆导致的问题,试试rsync -a max@144.16.251.213::test test

   Q: 出现以下这个讯息, 是怎么一回事?
   @ERROR: auth failed on module xxxxx
   rsync: connection unexpectedly closed (90 bytes read so far)
   rsync error: error in rsync protocol data stream (code 12) at io.c(150)

   A: 这是因为密码设错了, 无法登入成功, 请再检查一下 rsyncd.secrets 中的密码设定, 二端是否一致?

   Q: 出现以下这个讯息, 是怎么一回事?

   password file must not be other-accessible 
   continuing without password file 
   Password:

   A: 这表示 rsyncd.secrets 的档案权限属性不对, 应设为 600。请下 chmod 600 rsyncd.secrets

   Q: 出现以下这个讯息, 是怎么一回事?

   @ERROR: chroot failed
   rsync: connection unexpectedly closed (75 bytes read so far)
   rsync error: error in rsync protocol data stream (code 12) at io.c(150)

   A: 这通常是您的 rsyncd.conf 中的 path 路径所设的那个目录并不存在所致.请先用 mkdir开设好备份目录.

       完!


本文出自 “11295268” 博客,转载请与作者联系!

RSync实现双机文件同步

标签:配置文件   服务器   软件包   项目   服务端   

原文地址:http://11305268.blog.51cto.com/11295268/1858895

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!