文档章节

使用rsync实现远程同步备份

 川力666
发布于 2017/09/06 16:49
字数 1637
阅读 4
收藏 0

一. rsync简介

rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。所以通常可以作为备份工具来使用。

运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。Rsync可以搭配ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。

基本特点:

  1. 可以镜像保存整个目录树和文件系统;
  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
  3. 无须特殊权限即可安装;
  4. 优化的流程,文件传输效率高;
  5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
  6. 支持匿名传输。

命令语法:
rsync的命令格式可以为以下六种:
 rsync [OPTION]… SRC DEST
 rsync [OPTION]… SRC [USER@]HOST:DEST
 rsync [OPTION]… [USER@]HOST:SRC DEST
 rsync [OPTION]… [USER@]HOST::SRC DEST
 rsync [OPTION]… SRC [USER@]HOST::DEST
 rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]

对应于以上六种命令格式,我们可以总结rsync有2种不同的工作模式:

  • shell模式:使用远程shell程序(如ssh或rsh)进行连接。当源路径或目的路径的主机名后面包含一个冒号分隔符时使用这种模式,rsync安装完成后就可以直接使用了,无所谓启动。(目前没有尝试过这个方法)
  • daemon模式:使用TCP直接连接rsync daemon。当源路径或目的路径的主机名后面包含两个冒号,或使用rsync://URL时使用这种模式,无需远程shell,但必须在一台机器上启动rsync daemon,默认端口873,这里可以通过rsync --daemon使用独立进程的方式,或者通过xinetd超级进程来管理rsync后台进程。

当rsync作为daemon运行时,它需要一个用户身份。如果你希望启用chroot,则必须以root的身份来运行daemon,监听端口,或设定文件属主;如果不启用chroot,也可以不使用root用户来运行daemon,但该用户必须对相应的模块拥有读写数据、日志和lock file的权限。当rsync以daemon模式运行时,它还需要一个配置文件——rsyncd.conf。修改这个配置后不必重启rsync daemon,因为每一次的client连接都会去重新读取该文件。

通常把远程服务器端成为rsync Server,运行rsync命令的一端称为Client。

二. 方案一:远程同步rsync Server(centos6)+Client(window7)

1. 环境设定

rsync Server:文件服务器,Centos6.8,存放图片或其他数据文件。
Client:备份服务器Window7,用于备份图片文件或数据库。

2.下载

rsync Server:Linux环境,为服务端
下载地址:https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz

Client:Windows环境,cwRsync Free Edition,为客户端工具
https://www.itefix.net/dl/cwRsync_5.5.0_x86_Free.zip

3.服务端rsync Server安装配置

Linux环境:
# tar -zxvf rsync-3.1.2.tar.gz
# cd rsync-3.1.2
# ./configure
# make
# make install
若出现以下信息

提示没有GCC编译器环境,采用yum方式,使用如下命令安装gcc编译器即可
# yum -y install gcc
若过程中未出现任何错误信息,则表示安装成功。

服务端配置
rsyncd.conf  自定义存放路径,假设存放在/home/rsyncd目录,内容如下:

# 全局设置
#指定模块以root用户来传输文件,如果匿名用户的话,这里填写nobody
uid = nobody
#指定模块以root用户来传输文件,如果匿名用户的话,这里填写nobody
gid = nobody
#Rsync守护进程把其PID写入的文件
pid file = /home/rsyncd/rsyncd.pid
#指定支持max connections的锁文件
lock file = /home/rsyncd/rsync.lock
#指定Rsync守护进程产生的日志文件,而不是传送给syslog
log file = /home/rsyncd/rsyncd.log

#设置为YES,表示在传输文件之前,定位到根目录下,即PATH指定的目录,这样做,主要是出于安全考虑
use chroot = yes
#默认true,是否允许客户上传文件。true则不允许上传;若为 false 并且服务器目录也具有读写权限则允许上传。
read only = yes	
max connections = 5
timeout = 300

#指定哪些客户端可以访问连接此模块,可以指定单个IP或整个网段
#hosts allow=192.168.0.221
#指定哪些客户端不允许连接此模块,例如为0.0.0.0/0网段,代表整个网络
#hosts deny=*
#只允许IP为192.168.239.128的客户端访问
hosts allow=192.168.239.128

list=yes

[tmp]
	path = /tmp
	comment = the dir for tmp

以独立运行模式启动rsync服务
# rsync --daemon --config=/home/rsyncd/rsyncd.conf
如果需要系统开机启动,可以把上面命令加入到/etc/rc.local文件中。

如果使用了防火墙,要添加允许873端口的规则。
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
# iptables -L
查看一下防火墙是不是打开了 873端口
# netstat -anp|grep 873

4. 客户端Client安装配置

Windows环境:
假设客户端IP为192.168.239.128,cwRsync工作目录为C:\prg\cwRsync_5.5.0_x86_Free
安装很简单,解压cwRsync_5.5.0_x86_Free.zip到C:\prg

假设rsync Server服务端IP为192.168.239.131,查看服务器上提供的同步资源,打开CMD命令窗口,输入以下命令:
# C:
# cd C:\prg\cwRsync_5.5.0_x86_Free\bin
# rsync --list-only 192.168.239.131::

编写批处理文件backup_rsync.bat,内容如下:
 

C:
cd C:\prg\cwRsync_5.5.0_x86_Free\bin\

rsync.exe -az --delete 118.123.246.112::tmp /cygdrive/C/bak/tmp

参数说明:
--delete # 从客户端目录中删除与服务端目录中不同的数据,保证两边数据完全一致
192.168.239.131::tmp # rsync Server服务端IP为192.168.239.131,rsyncd.conf中定义的模块tmp
/cygdrive/C/bak/tmp # Window下目录C:\bak\tmp

执行backup_rsync.bat成功后,在目录C:\bak\tmp下可以看见同步过来的所有文件。

注:可以通过windows任务计划工具,实现自动定时同步备份。

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 7
码字总数 8539
作品 0
linux学习笔记-rsync原理及使用

rsync的原理及使用 第1章 rsync原理及介绍 1.1什么是rsync Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。Rstync软件适用于unix/linux/window...

呀哈喽
2017/11/04
0
0
rsync远程同步的基本配置与使用

rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用...

L宝宝聊IT
08/01
0
0
rsync远程同步

**----在远程同步任务中,负责发起rsync同步操作的客户机被称为发起端,而负责相应来自客户机的rsync同步操作的服务器成为同步源。----在同步过程中,同步源负责提供文档的原始位置,发起段应...

李佳良
01/07
0
0
50台集群架构配置介绍-2(备份服务器Rsync)

本篇博客 感谢老男孩老师教学 在企业里面首先会先需要备份服务器,来备份数据,以防丢失。 在此,我们在这里介绍Rsync服务器(实现本地拷贝以及远程拷贝) 介绍: Rsync 开源、快速、可实现全量...

gyrgey18912
2017/10/19
0
0
【学习笔记】(笔记中)老男孩-企业级数据同步软件rsync深度实战(上)

本篇博客是51CTO老男孩-企业级数据同步软件rsync深度实战第一部分的学习笔记,在此篇博客记录下来是为方便后期查找翻阅,本文所有的知识点归老男孩讲师所有! 本篇博客严禁转载,谢谢大家配合...

笑雁鸿儒
2017/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS三元运算示例

1. topFlag=topFlag ==0?1:0; 等于 if(topFlag=00){ topFlag=1; }else if(topFlag == 1){ topFlag=0; } 2. 5>3?alert('5大'):alert('3大'); 即 if(5>3){alert('5大')}else{alert('3大')}; 注......

森火
58分钟前
0
0
利用Slf4j的MDC跟踪方法调用链

why? 一个web项目通常提供很多URL访问地址, 项目一般都是分层处理,例如Controller——>Service——>DAO。 如果想根据日志查看用户一次请求都走了哪些方法(多数是查错误)。 如果系统是多人...

杨春炼
今天
6
0
Maven介绍及安装

Maven介绍及安装 以下内容是本人早期学习时的笔记,可能比较详实繁琐,现在复习一下Maven,顺便将内容抛出来,供大家一起学习进步。 一、Maven简介 Maven是Apache旗下的一款项目管理工具,是...

星汉
今天
0
0
小程序Aes解密

主要步骤: 1、下载AES源码(JS版) 2、在小程序中新建一个公共的文件夹,把AES源码拷贝进去(注意:需要暴露接口 module.exports = CryptoJS;) 3、添加一个用于加密解密的公共JS,可取名为...

Mr_Tea伯奕
今天
0
0
Go实现文件传输(基本传输可用)

发送端 package mainimport ("fmt""os""net""io")func SendFile(path string, connect net.Conn){file, oerr :=os.Open(path)if oerr !=nil{fmt.Println("Open", oerr)......

CHONGCHEN
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部