Rsync数据同步工具
目录
- 一.什么是Rsync?
- 二.Rsync的工作方式
- 三.本地数据传输模式
- 四.借助ssh通道在不同主机之间传输数据
- 五.多组服务器之间,以socket进程方式,启动rsync进程监听(不需要目标路径)
- 六.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通道在不同主机之间传输数据
|
- -e ‘ssh -p 22’表示通过ssh通道传输数据,可省略
- -P显示同步的过程,可以用--progress替换。
- root@192.168.197.129:/tmp/ 远程主机系统用户 , IP地址 ,路径
保证能够支持ssh远程通道连接(有无scp命令)
五.多组服务器之间,以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服务?
部署B客户端rsync
创建密码文件
echo "123456'> etc/rsync.password |
将密码文件的权限设置为600
chmod 600 /etc/rsync_password |
六.Rsync的优缺点
rsync优点: