【Linux网络服务】Rsync数据同步

简介: 【Linux网络服务】Rsync数据同步

Rsync数据同步

1.Rsync简介

1.1.什么是Rsync

  • Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。Rsync软件适用于unix/linux/windows等多种操作系统平台。可实现全量备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用。
  • rsync监听端口:873
  • rsync运行模式:C/S,B/S

1.2.Rsync特性

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

1.3.Rsync企业工作场景

(1)由webServer向Rsync服务器上传

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0GO3uEc-1666762698910)(images/10.jpg)]

(2)由Rsync服务器向webServer拉取



429a50e38c764fb2af7c8546865b89c0.jpg

(3)多Rsync服务器备份

5b1c2540c35c47f59474bdbe704830e9.jpg

(4)异地备份

c63f4fc471c14d1d872760f1aceb866c.jpg

2.Rsync的数据传输方式

2.1.rsync命令下载及常用参数

(1)Rsync软件包下载

yum -y install rsync


c71058ce7529468a8a6bdd1026580cee.jpg

(2)常用参数

  • -v:–verbose详细模式输出,传输时的进度等信息。
  • -z:–compress传输时进行压缩,可以根据–compress-level=NUM可按级别压缩。
  • -a:–archive归档模式,表示以递归的方式传输,保留文件属性。
  • -r:–recursive递归模式传输。
  • -t:–times保持文件时间信息。
  • -o:–owner保持文件属主信息。
  • -p:–perms保持文件权限。
  • -g:–group保持文件属组信息。
  • -P:显示同步的过程信息进度条。
  • –delete:让源目录和目标数据保持一至。

2.2.本地数据文件复制

(1)创建lixiang.txt文件和目录lixiang

touch lixiang.txt
mkdir lixiang

0c61480132bf49149862bf5b95c1362b.jpg

(2)将lixiang.txt追加内容并复制到lixiang目录下

echo "hello lixiang" >>lixiang.txt
rsync lixiang.txt lixiang


cd1cd1333f9248ad97b585b869de8502.jpg

(3)/root新建test目录,将lixiang目录整体复制到test下

rsync -zav lixiang test


f81d1a812b254a55b2aa94b7a542c1a1.jpg

2.3.远程数据文件复制

  • 机器准备
  • 192.168.159.11
  • 192.168.159.12

(1)将11节点下的test目录发送到12节点

rsync -zav test rsync2:/root   #rsync2是在/etc/hosts文件下做的映射,这里也可以写成ip

19e3a61d881d4cdd8b1188390f2d371a.jpg

(2)将12节点的yumjisuan目录拉取到本机的root目录下

rsync -zav rsync2:/root/yunjisuan /root

cdac8a1a56f04e0889f0683cda12d568.jpg

2.4.守护进程数据文件复制

  • 机器准备
  • 192.168.159.22(rsync服务端)
  • 192.168.159.23(rsync客户端)

(1)新增vi /etc/rsyncd.conf配置文件

#用户id
uid = rsync
#组id
gid = rsync
#程序安全设置
use chroot = no
#客户端连接数
max connections = 200
#进程号文件位置
pid file = /var/run/rsyncd.pid
#进程锁文件位置
lock file = /var/run/rsync.lock
#日志文件位置
log file = /var/run/rsyncd.log
#连接超时时间
timeout = 300
#3.1版本以上要加这个
fake super = yes
#模块名称
[backup]
#同步数据的目录
path = /backup
#有错误时忽略
ignore errors
#只读模式(true为只读,false为可读可写)
read only = false
#阻止远程列表
list = false
#允许访问的IP
hosts allow = 192.168.159.0/24
#禁止访问的IP
hosts deny = 0.0.0.0/32
#虚拟用户
auth users = rsync_backup
#存放用户和密码的文件
secrets file = /etc/rsync.password

(2)创建密码文件vi /etc/rsync.password

rsync_backup:123456

(3)给/etc/rsync.password降权

chmod 600 /etc/rsync.password

1b9e0d262f3d40bcb9b78e496a58f979.jpg

(4)创建程序用户rsync

useradd -M -s /sbin/nologin rsync


245a2b19c4dd497c875149fc04c9108c.jpg(5)守护进程启动rsync

rsync --daemon

(6)12客户端节点新增密码文件vi /etc/rsync.password

123456

(7)给/etc/rsync.password降权

chmod 600 /etc/rsync.password


b6aef0d0444d42bdb69fbd30f2503ecd.jpg

(8)测试传输文件到11服务器节点

rsync -zav inotify.sh rsync_backup@192.168.159:23::backup --password-file=/etc/rsync.password

c758ff299f3f451982e08a74d3d01621.jpg

3.Rsync企业应用

3.1.Rsync应用场景及风险提示

  • 执行–delete参数从rsync服务器端往rsync客户端拉取数据时,一定要小心,最好不用,它比从rsync客户端带–delete参数王rsync服务端推送危险的多。
  • 客户端带–delete参数往服务端推送仅删除服务端模块下的数据,而前者有能力删除rynsc客户端本地的所有数据包阔根下的所有目录。
  • 注意:–delete参数一定要放在客户端去执行,客户端上传的时候携带。
  • **rsync推送企业的工作场景:**备份–delete风险 本地有啥,远端就有啥,本地没有的远端有也要删除。服务器端的目录数据可能丢失。
  • **rsync拉取企业的工作场景:**代码发布,下载。–delete风险 远端有啥,本地(客户端)就是啥,远端没有本地有也要删除。本地的目录数据可能丢失。

3.2.Rsync的优缺点

(1)Rsync优点

  • 增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)。
  • 远程SHELL通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务。

(2)Rsync缺点

  • 大量小文件时候同步的时候,比对时间较长,有的时候,同步过程中,rsync进程可能会停止,僵死了。
  • 同步大文件,10G这样的大文件有时也会出问题,中断。未完整同步前,是隐藏文件,可以通过续传(–partial)等参数实现传输 。
  • 一次性远程拷贝可以用scp,大量小文件要打成一个包再拷贝。(重要)

3.3.Rsync服务端排错思路

  • 查看rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf。
  • 查看配置文件里host allow,host deny,允许的IP网段是否是允许客户端访问的ip网段。
  • 查看配置文件中path参数里的路径是否存在,权限是否正确(正常应为配置文件中的UID参数对应的属主和组)。
  • 查看rsync服务是否启动。查看命令为:ps -ef|grep rsync。端口是否存在netstat -antup |grep 873。
  • 查看iptables防火墙和selinux是否开启允许rsync服务通过,也可以考虑关闭。
  • 查看服务端rsync配置的密码文件是否为600的权限,密码文件格式是否正确,正确格式为:用户名:密码,文件路径和配置文件里的secrect files参数对应。
  • 如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。

3.4.Rsync客户端排错思路

  • 查看客户端rsync配置的密码文件是否600的权限,密码文件格式是否正确,注意:仅需要有密码,并且和服务器端的密码保持一致。
  • 用telnet连接rsync服务器ip地址873端口,查看服务是否启动(可测试服务端防火墙是否阻挡)telnet 192.168.197.129 873。
    置文件里的secrect files参数对应。
  • 如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。

3.4.Rsync客户端排错思路

  • 查看客户端rsync配置的密码文件是否600的权限,密码文件格式是否正确,注意:仅需要有密码,并且和服务器端的密码保持一致。
  • 用telnet连接rsync服务器ip地址873端口,查看服务是否启动(可测试服务端防火墙是否阻挡)telnet 192.168.197.129 873。

客户端执行命令时:rsync -avzP rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password此命令的细节要记清楚,尤其192.168.197.129::backup 处的双冒号及其后的backup为模块名称。


相关文章
|
29天前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
250 146
|
2月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
237 11
|
2月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
68 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
3月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
166 18
|
3月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
167 5
|
5月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
283 61
|
4月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
236 5
|
4月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
86 0
|
6月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
170 18
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
222 0
下一篇
开通oss服务