加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

运维必备!Linux 远程数据同步工具详解

发布时间:2018-11-12 22:17:28 所属栏目:业界 来源:今日头条
导读:一、简介 1 认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的Rsync算法来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相
副标题[/!--empirenews.page--]

运维必备!Linux 远程数据同步工具详解

一、简介

1 认识

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

Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试;

此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具

2 原理

Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件;

Rsync可以通过rsh或ssh使用,也能以daemon模式去运行在以daemon方式运行时Rsync server会打开一个873 端口,,等待客户端去连接。

连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。

3 特点

可以镜像保存整个目录树和文件系统;

可以很容易做到保持原来文件的权限、时间、软硬链接等;

无须特殊权限即可安装;

优化的流程,文件传输效率高;

可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;

支持匿名传输

二、ssh模式

1 本地间同步

  1. 环境: 172.16.22.11 
  2. # mkdir src # touch src/{a,b,c,d} # mkdir dest # rsync -av 172.16.22.12:/data/test/src/ dest/ --远程同步至本地,需输入root密码 # rsync -av src/ 172.16.22.12:/data/test/dest/ --本地文件同步至远程 # rsync -av src 172.16.22.12:/data/test/dest/ --整个目录同步过去 # rm -rf src/d --删除一个文件 d # rsync -av --delete src/ 172.16.22.12:/data/test/dest/ --delete,从目标目录里面删除无关的文件 

2、局域网间同步

环境: 172.16.22.11

  1. # useradd george # passwd george # mkdir /home/george/test # touch /home/george/test/g{1,2,3,4} 

3、局域网指定用户同步

—172.16.22.12

  1. # useradd george # passwd george # mkdir /home/george/test # touch /home/george/test/g{1,2,3,4} 

—172.16.22.11

  1. # rsync -av src '-e ssh -l george' 172.16.22.12:/home/george --本地同步至远程 # rsync -av 172.16.22.12:/home/george/test/g* '-e ssh -l george -p 22' dest/ 

三、daemon模式

  1. 环境:192.168.22.11 

1、服务启动方式

1.1、对于负荷较重的 rsync 服务器应该使用独立运行方式

  1. # yum install rsync xinetd --服务安装 # /usr/bin/rsync --daemon 

1.2、对于负荷较轻的 rsync 服务器可以使用 xinetd 运行方式

# yum install rsync xinetd --服务安装 # vim /etc/xinetd.d/rsync --配置托管服务,将下项改为 no disable = no # /etc/init.d/xinetd start --启动托管服务 xinetd # chkconfig rsync on # netstat -ntpl | grep 873 --查看服务是否启动

2、配置详解

两种 rsync 服务运行方式都需要配置 rsyncd.conf,其格式类似于 samba 的主配置文件

全局参数

  • 在全局参数部分也可以定义模块参数,这时该参数的值就是所有模块的默认值
  • address —在独立运行时,用于指定的服务器运行的 IP 地址;由 xinetd 运行时将忽略此参数,使用命令行上的 –address 选项替代。默认本地所有IP
  • port —指定 rsync 守护进程监听的端口号。 由 xinetd 运行时将忽略此参数,使用命令行上的 –port 选项替代。默认 873
  • motd file —指定一个消息文件,当客户连接服务器时该文件的内容显示给客户
  • pid file —rsync 的守护进程将其 PID 写入指定的文件
  • log file —指定 rsync 守护进程的日志文件,而不将日志发送给 syslog
  • syslog facility —指定 rsync 发送日志消息给 syslog 时的消息级别
  • socket options —指定自定义 TCP 选项
  • lockfile —指定rsync的锁文件存放路径
  • timeout = 600 —超时时间

模块参数

模块参数主要用于定义 rsync 服务器哪个目录要被同步。模块声明的格式必须为 [module] 形式,这个名字就是在 rsync 客户端看到的名字,类似于 Samba 服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的

基本模块参数

  • path —指定当前模块在 rsync 服务器上的同步路径,该参数是必须指定的
  • comment —给模块指定一个描述,该描述连同模块名在客户连接得到模块列表时显示给客户

模块控制参数

  • use chroot = —默认为 true,在传输文件之前首先 chroot 到 path 参数所指定的目录下;优点,安全;缺点,需要 root 权限,不能备份指向 path 外部的符号连接所指向的目录文件
  • uid = —指定该模块以指定的 UID 传输文件;默认nobody
  • gid = —指定该模块以指定的 GID 传输文件;默认nobody
  • max connections —最大并发连接数,0为不限制
  • lock file —指定支持 max connections 参数的锁文件。默认 /var/run/rsyncd.lock
  • list —指定当客户请求列出可以使用的模块列表时,该模块是否应该被列出。默认为 true,显示
  • read only = —只读选择,也就是说,不让客户端上传文件到服务器上。默认true
  • write only = —只写选择,也就是说,不让客户端从服务器上下载文件。默认false
  • ignore errors —忽略IO错误。默认true
  • ignore nonreadable —指定 rysnc服务器完全忽略那些用户没有访问权限的文件。这对于在需要备份的目录中有些不应该被备份者获得的文件时是有意义的。 false
  • timeout = —该选项可以覆盖客户指定的 IP 超时时间。从而确保 rsync 服务器不会永远等待一个崩溃的客户端。对于匿名 rsync 服务器来说,理想的数字是 600(单位为秒)。 0 (未限制)
  • dont compress —用来指定那些在传输之前不进行压缩处理的文件。该选项可以定义一些不允许客户对该模块使用的命令选项列表。必须使用选项全名,而不能是简称。当发生拒绝某个选项的情况时,服务器将报告错误信息然后退出。例如,要防止使用压缩,应该是:”dont compress = ”。 .gz.tgz .zip.z .rpm.deb .iso.bz2 .tbz

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读