返回顶部

Rsync数据同步工具

 

目录


一.什么是Rsync?

是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。

利用rsync还可以实现删除文件或者目录的功能,相当于rm命令

也相当于scp ,cp命令

1.1rsync的特性

  • 支持拷贝特殊文件和链接文件,设备等
  • 可以有排除(tar?find?)指定文件或目录的功能,相当与打包命令tar的排除功能
  • 可以做到保持源文件或目录的权限,时间,软硬链接,属主,组等属性均不改变-p
  • 可以时间增量同步,即只同步发生变化的数据,因此数据传输效率很很高(tar-N)
  • 可以是用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
  • 可以通过socket(进程方式)传输文件和数据(服务端和客户端)
  • 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像

二.Rsync的工作方式

大致有三种

  • 单个主机本地之间的数据传输(此时类似于cp命令的功能)
  • 借助rcp,ssh等通道来传输数据(此时类似与scp命令的功能)
  • 以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能)

1)本地之间的数据传输

2)两台不同IP服务器间数据传输 scp

3)以socket进程监听的方式(不需要目标路径)

三.本地数据传输模式

rsync [选项] 源目录或文件 目标

本地同步,相当于cp命令

rsync /etc/hosts /tmp

相当于rm命令

mkdir /zwq

rsync -avz --delete /zwq/ /tmp/

tmp 清空 跟zwq一样

 

rsync 命令常用参数:

--delete 让源目录和目标目录数据一样
--bwlinit 限速
-v 输出详细信息
-z 传输时压缩以提高传输效率
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-p 保持各种属性不变

 

 

 

 

 

 

 

 

 

  

注:rsync -avz /zwq /tmp

  rsync -avz /zwq/ /tmp

1)中/zwq/的意思是,仅把/zwq/目录里面的内容同步过来,zwq目录本身并不同步;而后者中/zwq表示把zwq本身及其内部内容全都同步到/tmp下,仅一个/(斜线之差),意义大不相同。

 

四.借助ssh通道在不同主机之间传输数据

rsync -avzP -e 'ssh -p 22'/etc/ root@192.168.197.129:/tmp/

 

 

 

 

  • -e ‘ssh -p 22’表示通过ssh通道传输数据,可省略
  • -P显示同步的过程,可以用--progress替换。
  • root@192.168.197.129:/tmp/ 远程主机系统用户 , IP地址 ,路径

保证能够支持ssh远程通道连接(有无scp命令)

/etc/ssh/sshd_config 远程连接配置文件
-e ‘ssh -p 22’表示通过ssh通道传输数据,如果是22端口,不需要指定
如果不修改端口,默认是22端口,如果修改,设定1000以上端口。
 

五.多组服务器之间,以socket进程方式,启动rsync进程监听(不需要目标路径)

5.1部署rsync服务  A服务端过程:

首先确认软件是否安装:

which rsync

 

 

5.2创建rsync.d.conf文件(配置文件):

 uid = rsync  #用户

 gid = rsync  #组

 use chroot = no   #程序安全设置

 max connections = 200   #客户端连接数

 timeout = 300      #超时时间 

 pid file = /var/run/rsyncd.pid    #进程号文件位置

 lock file = /var/run/rsync.lock   #进程锁

 log file = /var/log/rsync.d/log    #日志文件位置

 [backup]     #模块名

 path = /backup/     #共用目录

 ignore = errors     #有错误是忽略

 read only = false   #可读可写

 list = false  #阻止远程列表  不让远程用户看服务端数据

 hosts allow = 192.168.200.0/24   #允许IP

 hosts dent = 0.0.0.0/32  #禁止IP

 auth users = rsync_backup  #虚拟用户

 secret file = /etc/rsync.password   #存放用户和密码的文件

 

5.3创建共享目录及添加rsync程序用户

useradd -M -s /sbin/nologin rsync    #创建rsync用户

 

 

mkdir /backup    #创建共享目录

 

 

5.4启动 rsync --daemon

rsync --daemon

 

5.5将A服务端上的/backup文件夹更改属组rsync

chown -R rsync   /backup

 

5.6创建rsync虚拟账户名和密码

echo ""rsync_backup:123456" > /etc/rsync.password

 

 

5.7将账户密码文件的权限设置为600

chomd 600 /etc/rsync.password

 

 

 

5.8加入开机启动

echo "rsync --daemon">> /etc/rc.local

 

 

改配置文件,就要重启进程。如何重启rsync服务?

 pkill rsync #关闭rsync服务 
 rsync --daemon #启动rsync服务

 

部署B客户端rsync

创建密码文件

echo "123456'> etc/rsync.password

 

将密码文件的权限设置为600

chmod 600 /etc/rsync_password

 

 

六.Rsync的优缺点

rsync优点:

(1)增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)
(2)远程SHELL通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务
rsync缺点:
(1)大量小文件同属同步的时候,比对时间较长,有的时候,同步过程中,rsync进程可能会停止,僵死了
(2)同步大文件,10G这样的大文件有时也会出现问题,中断。未完整同步前,都是隐藏文件,可以通过续传(--partial)等参数实现传输
(3)一次性远程拷贝可以用scp,大量小文件要打成一个包再拷贝。(重要)

 

posted @ 2018-11-06 20:47  五更琉璃丶  阅读(465)  评论(0编辑  收藏  举报