努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • 运维基础

    • nginx 安装
    • nginx-conf常用示例
    • rsync 服务pull与push
      • Rsync 应用场景
      • Rsync传输模式
        • 本地传输方式:
        • 远程通道传输方式:
      • 安装
      • rsync服务守护进程
      • pull 和push
        • pull拉取数据命令
        • push推送数据命令
        • 本地目录,推送到本地目录
        • 将本地/mnt目录推送至rsync备份服务器的backup模块
        • Rsync命令对应选项
      • rsync常用推送拉起案例
        • 客户端推送backup目录下所有内容至Rsync服务端
        • 客户端拉取Rsync服务端backup模块数据
        • Rsync实现数据无差异同步
        • Rsync的Limit限速
      • 服务端配置邮件功能
    • linux时间同步
    • 系统参数优化
    • ruby版本升级
    • fpm定制rpm
    • php7_X安装
    • iptables规则
    • tcpdump抓包
    • 公司部署Pritunl-VPN
    • 需求shell脚本记录
    • openldap安装配置
    • Ldap集成常用开源服务示例图
    • ansible基础
    • ansible进阶playbook与Roles
    • centos安装python3
    • Firewalld防火墙
    • Linux配置jdk
    • ubuntu安装ftp
    • minio分布式文件存储
    • windows安装openssh
    • centos7安装系统检测不到网卡
    • docker运行一个bind9和常用的网络命令
    • nginx禁用真实IP
  • 监控

  • 日志系统

  • 安全记录

//
  • 运维
  • 运维基础
yangfk
2019-08-22

rsync 服务pull与push

//

官网地址 🤞🤞 (opens new window)

rsync监听端口:873 rsync运行模式:C/S

既然需要备份,那么我们应该了解备份的方式 完全备份 增量备份 假设客户端上有file1 file2 file3文件,服务端上有file1文件, 现要将客户端上的数据备份至服务端

完全备份

将客户端所有的数据内容file1 file2 file3全部备份至服务端 (效率低下, 占用空间)

增量备份

将客户端的file2 file3增量备份至服务端 (提高备份效率,节省空间, 适合异地备份 )

# Rsync 应用场景

前面我们了解过备份的方式,下面我们需要了解Rync的数据同步模式

推: 所有主机推送本地数据至Rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)

拉: rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销大

大量服务器备份场景

异地备份实现思路

# Rsync传输模式

Rsync使用三种主要的数据传输方式

本地方式

远程方式

守护进程

# 本地传输方式:

单个主机本地之间的数据传输(此时类似于cp命令)

#本地拷贝数据命令
 Local:  rsync [OPTION...] SRC... [DEST]
 #本地拷贝数据示例
 [root@backup ~]# rsync  -avz  /etc/passwd  /tmp/
 rsync       #备份命令(cp)
 [options]   #选项
 SRC...      #本地源文件
 [DEST]      #本地目标文件 
1
2
3
4
5
6
7
8

# 远程通道传输方式:

通过ssh通道传输数据,类似scp命令

 #pull拉取数据命令
 Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
 #pull拉取数据示例
 [root@backup ~]# rsync -avz [email protected]:/etc/hostname ./   #拉取远程文件
 [root@backup ~]# rsync -avz [email protected]:/root/ /backup/   #拉取远程目录下的所有文件
 [root@backup ~]# rsync -avz [email protected]:/root /backup/    #拉取远程目录以及目录下的所有文件
 Pull        #拉取, 下载
 rsync       #备份命令
 [options]   #选项
 [USER@]     #目标主机的系统用户
 HOST        #目主机IP地址或域名
 SRC...      #目标主机源文件
 [DEST]      #下载至本地哪个位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Rsync借助SSH协议同步数据存在的缺陷

1.使用系统用户(不安全) 
2.使用普通用户(会导致权限不足情况) 
3.守护进程传输方式: rsync自身非常重要的功能(不使用系统用户,更加安全)
1
2
3

# 安装

yum -y install rsync

# rsync服务守护进程

/etc/rsync.conf 配置

uid = root
gid = root
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
pid file = /var/run/rsyncd.pid
address = 192.168.0.10
hosts allow = 192.168.0.13,192.168.108.179
hosts deny = *

[backup]
comment = im rsync update dir
path = /data/backup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

服务端配置,虚拟用户密码文件,文件权限 600

# cat  /etc/rsync.passwd
rsync_backup:yfk123456

# chmod 0600 /etc/rsync.passwd
1
2
3
4
  • 客服端常用参数组合命令 *
# rsync -avzP --progress --delete /opt/data [email protected]::backup --password-file=/etc/rsync.pass

# cat /etc/rsync.pass
yfk123456
1
2
3
4

# pull 和push

# pull拉取数据命令


 Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
 #1.拉取rsync备份服务的"backup模块"数据至本地/mnt目录
 [root@nfs01 ~]# rsync -avz [email protected]::backup/ /mnt/ --password-file=/etc/rsync.password
 rsync           #命令
 [OPTION...]     #选项
 [USER@]         #远程主机用户(虚拟用户)
 HOST::          #远程主机地址
 SRC...          #远程主机模块(不是目录)
 [DEST]          #将远程主机数据备份至本地什么位置
1
2
3
4
5
6
7
8
9
10

# push推送数据命令

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
1

# 本地目录,推送到本地目录

 Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
 #push推送数据示例
 rsync -avz /data/wwwroot/data/ /backup/2018-10-01
 Push        #推送, 上传
 rsync       #备份命令
 [options]   #选项
 SRC...      #本地源文件
 [USER@]     #目标主机的系统用户
 HOST        #目主机IP地址或域名
 [DEST]      #目标对应位置

1
2
3
4
5
6
7
8
9
10
11

# 将本地/mnt目录推送至rsync备份服务器的backup模块

[root@nfs01 ~]# rsync -avz /mnt/ [email protected]::backup/ --password-file=/etc/rsync.password
 rsync           #命令
 [OPTION...]     #选项
 SRC...          #远程主机模块(不是目录)
 [USER@]         #远程主机用户(虚拟用户)
 HOST::          #远程主机地址
 [DEST]          #将远程主机模块备份至本地什么位置
1
2
3
4
5
6
7

# Rsync命令对应选项

 -a#归档模式传输, 等于-tropgDl
 -v           #详细模式输出, 打印速率, 文件数量等
 -z           #传输时进行压缩以提高效率
 -r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
 -t           #保持文件时间信息
 -o           #保持文件属主信息
 -p           #保持文件权限
 -g           #保持文件属组信息
 -l#保留软连接
 -P           #显示同步的过程及传输时的进度等信息
 -D           #保持设备文件信息
 -L           #保留软连接指向的目标文件
 -e#使用的信道协议,指定替代rsh的shell程序
 --exclude=PATTERN   #指定排除不需要传输的文件模式
 --exclude-from=file #文件名所在的目录文件
 --bwlimit=100#限速传输
 --partial           #断点续传
 --delete            #让目标目录和源目录数据保持一致
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# rsync常用推送拉起案例

# 客户端推送backup目录下所有内容至Rsync服务端

[root@nfs01 ~]# export RSYNC_PASSWORD=yfk
[root@nfs01 ~]# rsync -avz /backup/ [email protected]::back
1
2

# 客户端拉取Rsync服务端backup模块数据

 [root@nfs01 ~]# export RSYNC_PASSWORD=yfk
 [root@nfs01 ~]#rsync -avz [email protected]::backup /backup/ 

1
2
3

# Rsync实现数据无差异同步

远端与本地保持一致,远端没有本地有会被删除, 造成客户端数据丢失

 [root@nfs01 ~]# export RSYNC_PASSWORD=yfk
 [root@nfs01 ~]# rsync -avz --delete [email protected]::backup/ /data/
 
1
2
3

# Rsync的Limit限速

使用rsync拉取备份数据时,由于文件过大导致内部交换机带宽被沾满,导致用户的请求无法响应


 [root@nfs01 ~]# export RSYNC_PASSWORD=yfk
 [root@nfs01 ~]# rsync -avz --bwlimit=1 [email protected]::backup/ /data/ 
1
2
3

# 服务端配置邮件功能

 [root@backup /]# yum install mailx -y
 [root@backup /]# vim /etc/mail.rc
 set from=122814556@qq.com
 set smtp=smtps://smtp.qq.com:465
 set smtp-auth-user=1228145560@qq.com
 set smtp-auth-password=#客户端授权码
 set smtp-auth=login
 set ssl-verify=ignore
 set nss-config-dir=/etc/pki/nssdb/ 
1
2
3
4
5
6
7
8
9

参考博客:oldboy

//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2021/09/30, 15:40:52
nginx-conf常用示例
linux时间同步

← nginx-conf常用示例 linux时间同步→

最近更新
01
Linux Polkit 权限提升漏洞(CVE-2021-4034)
03-28
02
postgreSQL维护
03-17
03
trivy系统漏洞扫描
02-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//