设为首页 收藏本站
查看: 626|回复: 0

[经验分享] RSync实现双机文件同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-8 09:29:15 | 显示全部楼层 |阅读模式
双机同步任务操作步骤                     :红色为注释说明的内容,绿色为示例内容,请以项目实际情况修改操作

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开设好备份目录.

       完!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-282912-1-1.html 上篇帖子: linux服务器上传下载带宽测试 下篇帖子: 快照的快照删除:cannot delete dir - Directory not empty 服务器 服务商
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表