RSync实现数据备份

RSYNC=Remote Sync 远程同步 高效
官方网站
与SCP的比较:scp=无法备份大量数据,类似windows的复制
rsync=边复制 ,边统计,边比较

Rysnc特性和优点

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

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

无须特殊权限即可安装。

快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过- 的文件。

压缩传输:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

支持匿名传输,以方便进行网站镜象。

选择性保持:符号连接,硬链接,文件属性,权限,时间等

常见备份分类

完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地

差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)

增量备份:备份上次备份以后有变化的数据.(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)

运行模式和端口
采用C/S模式(客户端/服务器模式)[ 就是一个点到点的传输,直接使用rsync命令 ]
端口873
发起端和备份源
四个名词的解释:
发起端:负责发起rsync同步操作的客户机叫做发起端,通知服务器我要备份你的数据
备份源:负责相应来自客户机rsync同步操作的服务器脚在备份源,需要备份的服务器
服务端:运行rsyncd服务,一般来说,需要备份的服务器
客户端:存放备份数据

数据同步方式:

推push:一台主机负责把数据传送给其他主机,服务器开销很大,比较适合后端服务器少的情况
拉pull:所有主机定时去找一主机拉数据,可能就会导致数据缓慢
推:目的主机配置为rsync服务器,源主机周期性的使用rsync命令把要同步的目录推过去(需要备份的机器是客户端,存储备份的机器是服务端)
拉:源主机配置为rsync服务器,目的主机周期性的使用rsync命令把要同步的目录拉过来(需要备份的机器是服务端,存储备份的机器是客户端)
两种方案,rsync都有对应的命令来实现

Xinetd管理Rsync工作原理

这里写图片描述


使用rsync来同步是先通过xinetd监听873号端口,如果rsync进来的是873号端口,那么xinetd就会通知它所管辖的rsync服务来做回应,接下来就是rsync俩服务于之间的通讯

Rsync服务安装
Rsync服务依赖Xinetd,是使用超级服务来管理的

yum install xinetd rsync -y vim /etc/xinetd.d/rsync # default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = yes #此行原=yes,改为=no flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } /etc/init.d/xinetd restart # 启动服务 # 检查端口是否启用 netstat -antup | grep 873 tcp 0 0 :::873 :::* LISTEN 13082/xinetd

Rsync命令

rsync命令和scp命令很相似 // -a, --archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等 -r, --recursive 复制所有下面的资料,递归处理 -p, --perms 保留档案权限 ,文件原有属性 -t, --times 保留时间点,文件原有时间 -g, --group 保留原有属组 -o, --owner 保留档案所有者(root only) -D, --devices 保留device资讯(root only) -l, --links 复制所有的连接 ,拷贝连接文件 // -z, --compress 压缩模式, 当资料在传送到目的端进行档案压缩. -H, --hard-links 保留硬链接文件 -A, --acls 保留ACL属性文件,需要配合--perms -P,-P参数和 --partial --progress 相同.只是为了把参数简单化,表示传进度 --version, 输出rsync版本 // -v , --verbose 复杂的输出信息 -u, --update 仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不覆盖新的文件 --port=PORT, 定义rsyncd(daemon)要运行的port(预设为tcp 873) --delete, 删除那些目标位置有的文件而备份源没有的文件 --password-file=FILE ,从 FILE 中得到密码 --bwlimit=KBPS, 限制 I/O 带宽 --filter “-filename”,需要过滤的文件 --exclude=filname,需要过滤的文件 --progress,显示备份过程 // 常用的 –avz

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e8d89d7c4ad7ae232cc5a568565db9e9.html