Rsync同步过程中遇到的常见问题


一、Rsync服务介绍

Rsync属于一款实现全量及增量同步数据的软件工具,适用于unix/linux/windows等多种操作系统平台。
Rsync软件能实现本地复制,远程复制,或者远程守护进程方式复制。它以其delta-transfer算法闻名,减少通过网络数据发送数量,利用只发送源文件和目标文件之间的差异信息,从而实现数据的增量同步复制。

二、Rsync工作方式

  1. 本地数据备份方式
  2. 远程传输数据方式
  3. 守护进程传输数据方式

以rsync守护进程方式实现为主,通过man rsync帮助,查看用法。

#拉取数据的命令参数用法
Pull:rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
      rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
参数解释:
      [[email protected]]HOST::       --- 指定远程连接的认证用户
      SRC                 --- 指定相应的模块信息
      [DEST]              --- 将远程数据保存到本地的路径信息

#推送数据的命令参数用法
Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
      rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
参数解释:
      [[email protected]]HOST::       --- 指定远程连接的认证用户
      SRC                 --- 指定本地要进行推送的数据信息
      [DEST]              --- 远程进行保存数据的模块信息

三、守护进程部署流程

3.1 服务端部署

1)主机环境检查

[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[[email protected] ~]# uname -r
2.6.32-642.el6.x86_64
[[email protected] ~]# uname -m
x86_64

2)检查软件是否安装

[[email protected] ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64

3)编辑配置文件
配置文件默认不存在,需要在/etc目录下创建rsyncd.conf。
参数用法:man rsyncd.conf。

#created by user at 2018
###rsyncd.conf start###
uid = www                                 #管理备份目录的用户(需要在linux系统下创建虚拟用户)
gid = www                                 #管理备份目录的用户组
use chroot = no                           #保护模式,一般内网使用,可以选择禁用no
max connections = 200                     #可以同时处理的并发连接数
timeout = 300                             #连接超时,在指定时间内没有数据传输,自动释放连接
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors                             #备份传输过程中,忽略一些I/O产生的传输错误
read only = false                         #对备份目录开启读写权限,默认为true,只读模式
list = false                              #禁止通过客户端查询服务端配置的模块信息
hosts allow = 172.16.1.0/24               #允许指定网段或主机来访问备份目录
auth users = rsync_backup                 #认证用户(虚拟认证用户),不是真实存在的,非linux系统管理的虚拟用户
secrets file = /etc/rsync.pass            #设置免交互方式用户认证文件
[data]                                    #指定备份目录的模块名称
comment = "sersync dir by myself"
path = /data                              #以绝对路径方式,设置备份目录路径信息

4)创建备份目录管理用户

[[email protected] ~]# useradd www -M -s /sbin/nologin

5)创建备份目录

[[email protected] ~]# mkdir /data
[[email protected] ~]# chown -R www.www /data

6)创建用户认证文件

[[email protected] ~]# echo 'rsync_backup:123456' >>/etc/rsync.pass
[[email protected] ~]# chmod 600 /etc/rsync.pass

追加内容"认证用户:密码"到认证文件中,在追加前先切换为英文输入法,行尾不添加空格或tab等内容,防止认证出错。
可以通过vim编辑器尾行模式,输入:set list检查,或者使用命令cat -A /etc/rsync.pass检查。

7)启动Rsync服务

[[email protected] ~]# rsync --daemon
[[email protected] ~]# netstat -lntp|grep rsync
tcp        0      0 0.0.0.0:873              0.0.0.0:*                LISTEN        12805/rsync
tcp        0      0 :::873                   :::*                     LISTEN        12805/rsync
[[email protected] ~]# echo '/usr/bin/rsync --daemon' >>/etc/rc.local

如果rsync服务默认端口873被其他服务占用,使用rsync --daemon --port=PORT命令启动测试,更多帮助查看rsync --daemon --help。

3.2 客户端部署

1)主机环境检查

[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[[email protected] ~]# uname -r
2.6.32-642.el6.x86_64
[[email protected] ~]# uname -m
x86_64

2)检查软件是否安装

[[email protected] ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64

3)创建认证文件

[[email protected] ~]# echo '123456' >>/etc/rsync.pass
[[email protected] ~]# chmod 600 /etc/rsync.pass

客户端认证文件只需要添加密码即可,认证用户在客户端通过rsync命令进行设置。

4)进行数据备份测试

#客户端备份数据
[[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
sending incremental file list
hosts

sent 180 bytes  received 27 bytes  414.00 bytes/sec
total size is 294  speedup is 1.42

#服务端检查备份数据
[[email protected] ~]# ll /data/hosts
-rw-r--r-- 1 www www 294 Nov  6  2018 /data/hosts

四、Rsync备份过程中常见的错误问题总结

1. 客户端执行rsync命令发生错误问题

  • 错误提示
    ERROR: The remote path must start with a module name not a /
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::/data --password-file=/etc/rsync.pass
    ERROR: The remote path must start with a module name not a /
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
  • 问题解决
    rsync命令语法错误,::/data错误的语法,data为模块,而不是目录,正确写法::data。

2. 配置了免交互方式备份数据,客户端依旧需要输入密码问题

  • 错误提示
    password file must not be other-accessible
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    password file must not be other-accessible
    continuing without password file
    Password:
    sending incremental file list

    sent 26 bytes received 8 bytes 9.71 bytes/sec
    total size is 294 speedup is 8.65

  • 问题解决
    Rsync客户端的认证文件不是600权限。

3. Rsync服务端防火墙问题

  • 错误提示
    No route to host
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    rsync: failed to connect to 172.16.1.41: No route to host (113)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
  • 问题解决
    Rsync服务端开启了防火墙功能,关闭即可。

4. Rsync用户认证失败问题

  • 错误提示
    ERROR: auth failed on module data
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    @ERROR: auth failed on module data
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
  • 问题解决
    1.客户端rsync命令认证用户没写对,或者认证文件密码所在行的结尾有多余的空格或tab(cat -A /etc/rsync.pass检查)
    2.客户端认证文件/etc/rsync.pass配置错误,不需要rsync_backup认证用户,只需要设置认证密码即可。
    3.服务端认证文件中rsync_backup:123456后有空行或tab,需要注意。
    4.服务端认证文件/etc/rsync.pass权限不是600。
    5.服务端rsyncd.conf配置文件中,secrets file参数设置的认证文件名称与系统中创建的认证文件名称不一致。
    6.服务端rsyncd.conf配置文件中,uid和gid设置的管理用户与备份目录管理用户不一致。

5. Rsync服务权限阻止问题

  • 错误提示
    Permission denied
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    sending incremental file list
    hosts
    rsync: mkstemp ".hosts.dGfSQ1" (in data) failed: Permission denied (13)

    sent 180 bytes received 27 bytes 414.00 bytes/sec
    total size is 294 speedup is 1.42
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

  • 问题解决
    1.服务端/etc/rsyncd.conf文件中,uid和gid设置的管理用户与备份目录的属主和属组不一致。
    2.备份目录的文件权限不是755。

6. Rsync服务备份目录异常问题

  • 错误提示
    ERROR: chdir failed
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    @ERROR: chdir failed
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
  • 问题解决
    服务端/etc/rsyncd.conf文件中,备份目录模块path路径设置存在问题,检查目录是否存在,或者path路径是否填写正确。

7. Rsync服务备份模块异常问题

  • 错误提示
    ERROR: Unknown module ‘data‘
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    @ERROR: Unknown module ‘data‘
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
  • 问题解决
    1.客户端rsync命令执行时,指定的模块名称不正确。
    2.服务端/etc/rsyncd.conf文件中,指定的备份目录的模块名称不正确。

8.Rsync无效的用户问题

  • 错误提示
    ERROR: invalid uid mine
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    @ERROR: invalid uid mine
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
  • 问题解决
    服务端管理备份目录的虚拟用户不存在,通过“useradd 用户 -M -s /sbin/nologin”进行创建即可。

9. Rsync服务未开启问题

  • 错误提示
    Connection refused
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    rsync: failed to connect to 172.16.1.41: Connection refused (111)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
  • 问题解决
    1.检查服务:ps -ef|grep [r]sync
    2.开启服务:rsync --daemon

10. Rsync服务连接超时问题

  • 错误提示
    Connection timed out
  • 演示过程
    [[email protected] ~]# rsync -avz /etc/hosts [email protected]::data --password-file=/etc/rsync.pass
    rsync: failed to connect to 172.16.1.51: Connection timed out (110)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
  • 问题解决
    检查目标主机IP地址,ping目标主机检查链路是否正常。
    [[email protected] ~]# ping 172.16.1.41
    PING 172.16.1.41 (172.16.1.41) 56(84) bytes of data.
    64 bytes from 172.16.1.41: icmp_seq=1 ttl=64 time=0.438 ms
    64 bytes from 172.16.1.41: icmp_seq=2 ttl=64 time=0.543 ms

11. Rsync服务连接慢的问题

  • 日志分析
    [[email protected] ~]# tailf /var/log/rsyncd.log
    2019/06/27 12:49:35 [22251] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors
    --- 未对rsync客户端主机在服务端进行host解析,导致反向解析域名,使得连接缓慢。
    2019/06/27 12:49:55 [22251] name lookup failed for 172.16.1.31: Temporary failure in name resolution
    2019/06/27 12:49:55 [22251] connect from UNKNOWN (172.16.1.31)
    2019/06/27 12:49:55 [22251] rsync to data/ from [email protected] (172.16.1.31)
    2019/06/27 12:49:55 [22251] receiving file list
    2019/06/27 12:49:56 [22251] sent 76 bytes received 81 bytes total size 294
  • 问题解决
    [[email protected] ~]# echo -e ‘172.16.1.31\tnfs‘ >>/etc/hosts
    [[email protected] ~]# tailf /var/log/rsyncd.log
    2019/06/27 12:55:06 [22268] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors
    --- 可以查看到服务端对nfs主机进行了正确的反向解析过程。
    2019/06/27 12:55:06 [22268] connect from nfs (172.16.1.31)
    2019/06/27 12:55:06 [22268] rsync to data/ from [email protected] (172.16.1.31)
    2019/06/27 12:55:06 [22268] receiving file list
    2019/06/27 12:55:06 [22268] sent 76 bytes received 81 bytes total size 294

原文地址:https://www.cnblogs.com/theboy/p/11106092.html

时间: 2024-10-14 10:54:23

Rsync同步过程中遇到的常见问题的相关文章

java多线程的等待唤醒机制及如何解决同步过程中的安全问题

/* class Person{ String name; String sex; boolean flag = true; public void setPerson(String name, String sex){ this.sex=sex; this.name=name; } } class Input implements Runnable{ int x=0; Person p; Input(Person p){ this.p=p; } public void run(){ while

Android应用之——微信微博sdk使用过程中的一些常见问题

前言 最近在使用第三方登录和分享的过程中遇到了很多问题,一方面可以归结为自己经验的不足,另一方面其实也说明了官方文档的含糊不清.这篇博文不会写关于如何使用第三方登录分享,因为官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题. 一.微博登录和分享 微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了,这里不提了,说两个经常遇到过问题. 1.登录后停留在授权页,也就是登录后没有返回我们的应用,排除代码方面的原因后,还有几个原因导

Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题

前言 近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清.这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题. 一.微博登录和分享 微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了.这里不提了,说两个常常遇到过问题. 1.登录后停留在授权页,也就是登录后没有返回我们的应用.排除代码方面的原因后.还有几个

开启mysql远程访问过程中所遇常见问题的解决办法

今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (111) 测试代码: require 'mysql2' client = Mysql2::Client.new(:host=>"192.168.10.210",:username=>'root',:password=>"root") puts result

rsync 同步

应用场景 rsync是可以实现增量备份的工具.配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步. 同步过程 rsync同步过程中由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式. 检查模式 指按照指定规则来检查哪些文件需要被同步,例如哪些文件是明确被排除不传输的.默认情况下,rsync使用"quick check"算法快速检查源文件和目标文件的大小. mtime(修改时间)是否一致,如果不一致则需要传输.

使用rsync同步目录

本文描述了linux下使用rsync单向同步两个机器目录的问题. 使用rsync同步后可以保持目录的一致性(含删除操作). 数据同步方式 从主机拉数据 备机上启动的流程 同步命令: rsync -avzP --delete [email protected]{remoteHost}:{remoteDir} {localDir} 参数说明: -a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件:-p 表示保持文件原有权限:-t 保持文件原有时间:-g 保持文件原有

rsync同步文件

rsync是linux系统下的数据备份同步工具,可以镜像保存整个目录树和文件系统:也支持增量备份(这个算法只传送两个文件的不同部分),保持原来文件的权限.时间.软硬链接等附加信息负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的为同步源.再同步过程中,同步源负责提供文档的原始位置,而发起端对该位置具有读取权限,最后同步到本地 系统:centos7.5##注释 #systemctl stop firewalld --关闭防火墙 1.#yum -y install rsync2.#

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份.不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence. 在升级过程中的一些常见问题... 因为许可证过期了,不能进行升级如果你的许可证已经过期了,但是还没有收到新的许可证的话,在升级的过程中将会收到升级错误的提示.请参考 Upgrading Beyond Current Licensed Period 页面中的内容. 因为防病毒软件的问题不能进行升级一些防病毒软件或者

运维过程中rsync的使用

一 rsync介绍 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明. 语法 1 rsync [OPTION]... SRC DEST 2 rsync [OPTION]... SRC [[email