logo
关于我们

技术分享

技术分享 rsync同步工具

rsync同步工具

2021-04-28

linux rsync同步工具

1、rsync介绍
rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于unix/linux/windows等多种操作系统平台。

rsync和ssh带的scp命令比较相似,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以进行增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝.利用rsync还可以实现删除文件和目录功能,这又相当于rm命令。

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

3、rsync工作场景
两台服务器之间数据同步。
把所有客户服务器数据同步到备份服务器,生产场景集群架构服务器备份方案。
rsync结合inotify的功能做实时的数据同步

4.rsync的参数选项

rsync同步工具

rsync同步工具

rsync同步工具

rsync基础用法
同步本地数据

rsync -a  --delete /home  backups/
rsync -a --delete /home/   backups/

在指定复制源时,路径是否有最后的 “/” 有不同的含义,例如:
• /home : 表示将整个 /home 目录复制到目标目录
• /home/ : 表示将 /home 目录中的所有内容复制到目标目录

基于ssh的rsync远程同步数据(推)

rsync  -v  /etc/hosts root@192.168.0.128:

基于ssh的rsync远程同步数据(拉)

rsync	-v  root@192.168.0.128:/etc/*.conf  /bak/

拉之前必须确保对端主机安装了rsync工具
筛选rsync的传输目标
使用–exclude/–include选项

rsync -a /repo --exclude "profile.d/" root@192.168.0.128:/mnt/ 	
/images 目录下除过profile.d的文件,其他文件都同步到/mnt目录
rsync  -a /repo --include ""

使用 --exclude-from/–include-from 选项
当 include/exclude 的规则较复杂时,可以将规则写入规则文件。使用规则文件可以灵活地选择
传输哪些文件(include)以及忽略哪些文件(exclude)。
• 若文件/目录在剔除列表中,则忽略传输
• 若文件/目录在包含列表中,则传输
• 若文件/目录未被提及,也传输
在 rsync 的命令行中使用 --exclude-from=FILE 或 --include-from=FILE 读取规则文件。
规则文件 FILE 的书写约定:
• 每行书写一条规则 RULE
• 以 # 或 ; 开始的行为注释行

包含(include)和排除(exclude)规则的语法如下:
• include PATTERN 或简写为 + PATTERN
• exclude PATTERN 或简写为 – PATTERN

PATTERN 的书写规则如下:
• 以 / 开头:匹配被传输的跟路径上的文件或目录
• 以 / 结尾:匹配目录而非普通文件、链接文件或设备文件
• 使用通配符
• *:匹配非空目录或文件(遇到 / 截止)
• **:匹配任何路径(包含 / )
• ?:匹配除了 / 的任意单个字符
• [:匹配字符集中的任意一个字符,如 [a-z] 或 [[:alpha:]]
• 可以使用转义字符 \ 将上述通配符还原为字符本身含义

配置匿名rsync服务
yum源安装:
只需yum安装rsync和xinetd

yum -y install rsync xinetd

uid = nobody
gid = nobody
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2


[repo]
        path = /images
        commment = pub area

mkdir  /images
cp /etc/*.conf /images
配置防火墙规则

firewall-cmd --add-service=rsyncd --per
firewall-cmd --reload
firewall-cmd --list-all

启用并启动服务

systemctrl start rsyncd
systemctrl enable rsyncd

从远程rsync服务器同步数据
rsync -a rsync://192.168.0.128:/repo/ /mnt/
就能把192.168.0.128主机的 /images目录下的数据同步到本机/mnt下

配置Rsync服务器,需要将共享目录的SELinux Context(上下文)配置为指定类型的上下文,否则目录无法访问
获取系统默认定义的所有类型的上下文,使用semanage fcontext -l
查看文件的上下文,在使用ls -l时,加上Z选项,也就是ls -lZ
例如
ll -Z /

配置上下示例
临时配置,在autorelabel时,会恢复默认上下文
chcon -t public_content_t /images

永久配置上下文,在autorelabel时,还是会恢复到自定义的上下文类型
#semanage fcontext -a -t public_content_t “/images(/.*)?”
#restorecon -Rv /images
恢复上下文为自定义的public_content_t

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 其他

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载