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

时间:2019-06-29 12:29:33   收藏:0   阅读:136

一、Rsync服务介绍

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

二、Rsync工作方式

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

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

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

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

三、守护进程部署流程

3.1 服务端部署

1)主机环境检查

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

2)检查软件是否安装

[root@backup ~]# 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)创建备份目录管理用户

[root@backup ~]# useradd www -M -s /sbin/nologin

5)创建备份目录

[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data

6)创建用户认证文件

[root@backup ~]# echo 'rsync_backup:123456' >>/etc/rsync.pass
[root@backup ~]# chmod 600 /etc/rsync.pass

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

7)启动Rsync服务

[root@backup ~]# rsync --daemon
[root@backup ~]# 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
[root@backup ~]# echo '/usr/bin/rsync --daemon' >>/etc/rc.local

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

3.2 客户端部署

1)主机环境检查

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

2)检查软件是否安装

[root@nfs ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64

3)创建认证文件

[root@nfs ~]# echo '123456' >>/etc/rsync.pass
[root@nfs ~]# chmod 600 /etc/rsync.pass

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

4)进行数据备份测试

#客户端备份数据
[root@nfs ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::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

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

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

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

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

3. Rsync服务端防火墙问题

4. Rsync用户认证失败问题

5. Rsync服务权限阻止问题

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

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

8.Rsync无效的用户问题

9. Rsync服务未开启问题

10. Rsync服务连接超时问题

11. Rsync服务连接慢的问题

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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!