前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >rsync配置

rsync配置

原创
作者头像
陈雷雷
修改于 2019-10-08 04:15:38
修改于 2019-10-08 04:15:38
2.5K00
代码可运行
举报
文章被收录于专栏:Linux学习和使用Linux学习和使用
运行总次数:0
代码可运行

TOC

主机名

内网IP

公网IP

rsync

192.168.0.164

√ √

nfs

192.168.0.161

√ √

bak

192.168.0.162

mysql

192.168.0.163

lib01

192.168.0.155

lib02

192.168.0.156

mm01 jumpserver

192.168.0.158

47.92.175.186

web01

192.168.0.157

web02

192.168.0.159

web03

192.168.0.160

rsync -- 192.168.0.164

rsync介绍

rsync可以实现远程数据快速复制,备份,这个服务类似于scp命令,但它的功能远远超出scp的范畴

rsync可以实现增量备份,全量备份功能.这取决于她的 quick check (快速检查)算法

服务端部署rsync (守护进程方式)

  1. 检查是否安装

rpm -qa rsync

[root@rsync ~]# rpm -qa rsync rsync-3.1.2-6.el7_6.1.x86_64

如果没有安装可以使用 yum install rsync -y

  1. 编写配置文件
代码语言:txt
AI代码解释
复制
   vim /etc/rsyncd.conf

解释:

---------------------------------

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   uid = rsync                        #  rsync用户
   gid = rsync                        #  rsync组
   use chroot = no                    #  安全配置
   max connections = 200              #  最大连接数
   timeout = 300                      #  连接超时时间 (单位: s)
   pid file = /var/run/rsyncd.pid     #  pid文件
   lock file = /var/run/rsync.lock    #  锁文件
   log file = /var/log/rsyncd.log     #  日志文件
   #hosts deny = 0.0.0.0/32           #  拒绝的IP段
   auth users = chenleilei            #  允许连接rsync服务的账号(非系统账号)
   secrets file = /etc/rsync.password #  密码验证文件
   backup                           #  模块名 可以随意修改
   comment = "backup dir by oldboy"   #  连接的 欢迎语 没什么用
   path = /backup                     #  备份的目录
   ignore errors                      #  忽略个别传输失败的文件,不影响传输任务
   hosts allow = 192.168.0.0/24       #  允许的IP段
   list = false                       #  true:禁止写入 flase=允许写入
   read only = false                  #  true:禁止写入 flase=允许写入
   fake super = yes                   #  !!!重要!!! 在cento7 中需要加上此行,centos6可以忽略

---------------------------------

配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   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/rsyncd.log
   #hosts deny = 0.0.0.0/32
   auth users = chenleilei
   secrets file = /etc/rsync.password
   backup
   comment = "backup dir by oldboy"
   path = /backup
   ignore errors
   hosts allow = 192.168.0.0/24
   list = false
   read only = false
   fake super = yes

  1. 创建备份目录
代码语言:txt
AI代码解释
复制
 mkdir -p /backup
 chown -R rsync.rsync /backup

  1. 添加传输的认证用户密码文件 /etc/rsync.password
代码语言:txt
AI代码解释
复制
 echo "chenleilei:123" >/etc/rsync.password
 chmod 600 /etc/rsync.password

  1. 权限修改
代码语言:txt
AI代码解释
复制
root@rsync ~chmod 600 /etc/rsync.password
root@rsync ~# ls -la /etc/rsync.password
-rw------- 1 root root 15 Aug 14 04:13 /etc/rsync.password
root@rsync ~# cat /etc/rsync.password
chenleilei:123

  1. 创建运行用户
代码语言:txt
AI代码解释
复制
   useradd rsync -s /sbin/nologin -M
   root@rsync ~# id rsync
   uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)

  1. 启动rsync
代码语言:txt
AI代码解释
复制
root@rsync ~# rsync --daemon
   检查端口:
   root@rsync ~# netstat -lntup |grep rsync
   tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      16526/rsync
   tcp6       0      0 :::873                  :::*                    LISTEN      16526/rsync

客户端部署

代码语言:txt
AI代码解释
复制
1. 确认软件是否安装
[root@mm01 ~]# rpm -qa rsync
rsync-3.1.2-6.el7_6.1.x86_64

2. 已安装配置
[root@mm01 ~]# echo "123" >client.pass
[root@mm01 ~]# chmod 600 client.pass

2.1 未安装配置
[root@mm01 ~]# yum install -y rsync
[root@mm01 ~]# echo "123" >client.pass
[root@mm01 ~]# chmod 600 client.pass

测试传送

非密钥传输:

代码语言:txt
AI代码解释
复制
rsync -avz  /etc/rsyncd.conf chenleilei@192.168.0.164::backup

密钥传输:

代码语言:txt
AI代码解释
复制
rsync -avz  /etc/hosts chenleilei@192.168.0.164::backup --password-file=/root/client.pass

注意: 密钥所有者权限可以是 root.root 但文件权限必须是 600,这也是客户端部署时为什么要

chmod 600 client.pass 的原因!

rsync重要参数

--delete 无差异同步

代码语言:txt
AI代码解释
复制
将本地数据无差异同步到远程客户端,如果远程客户端同步的文件夹有文件也会一并被清除
此命令需要谨慎使用.一旦出错,无法恢复

语法:
rsync -avz --delete /etc/rsyncd.conf chenleilei@192.168.0.164::backup

--exclude=file 排除指定文件

代码语言:txt
AI代码解释
复制
在推送时,排除指定文件的推送
[root@mm01 ceshi]# rsync -avz chenleilei@192.168.0.164::backup/888/  /var/log/  --exclude=2.txt --password-file=/root/client.pass
receiving incremental file list
./
1.txt
3.txt

2.txt被排除

rsync错误集锦

错误1:

@ERROR: Unknown module 'backup'

rsync error: error starting client-server protocol (code 5) at main.c(1648) sender=3.1.2

代码语言:txt
AI代码解释
复制
网络原因无法传输,可能是当前主机IP不在允许的范围

解决: 检查服务器端 /etc/rsyncd.conf 中的 "hosts allow = "  配置

错误2:

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) sender=3.1.2

代码语言:txt
AI代码解释
复制
配置参数问题: fake super = yes 
在centos6 中 这行配置不加 也可以成功,但是在centos 7中如果没有此行配置,则会报以上错误

解决: 在配置文件中添加 fake super = yes 

错误3:

failed to create pid file /var/run/rsyncd.pid: File exists

代码语言:txt
AI代码解释
复制
服务已启动,再次启动会报这个错
可以通过 netstat -lntup 来查看服务端口 873 是否存在

错误4:

rsync: failed to connect to 192.168.0.164 (192.168.0.164): Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(125) sender=3.1.2

代码语言:txt
AI代码解释
复制
这可能是服务没有启动导致的原因,需要检查远程rsync服务是否存在.

错误5:

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) sender=3.1.2

代码语言:txt
AI代码解释
复制
这个报错,除了上面说的 fake super =yes 没有配置 还有可能是 权限不对
需要检查备份文件夹的权限是不是 rsync 所有者和所有主
[root@rsync /]# ll /backup 
total 4
drwxr-xr-x 10 root root 4096 Aug 14 17:27 log     #如果是root 可能就会出现问题,请改为rsync权限

解决办法:
chown -R rsync.rsync /backup

错误6

rsync 防火墙问题:

1565784168698.png
1565784168698.png

错误7

1565784239376.png
1565784239376.png

错误8

1565784286483.png
1565784286483.png

错误9:

1565784330026.png
1565784330026.png

错误10:

1565784375374.png
1565784375374.png

rsync的使用

rsync 客户端拉取 服务器的 backup目录中文件到本地目录

代码语言:txt
AI代码解释
复制
rsync -avz chenleilei@192.168.0.164::backup /var/log/ --password-file=/root/client.pass

rsync 客户端拉取 服务器的 backup目录到本地 /var/log 目录

代码语言:txt
AI代码解释
复制
rsync -avz chenleilei@192.168.0.164::backup /var/log/ --password-file=/root/client.pass

rsync 客户端拉取 服务器的 backup目录中的文件 不含 backup目录到本地 /var/log 目录

代码语言:txt
AI代码解释
复制
rsync -avz chenleilei@192.168.0.164::backup /var/log/ --password-file=/root/client.pass

陈雷雷blog:

https://www.chenleilei.net

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
公司来了个大神,三方接口调用方案设计的真优雅~~
在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题。
程序员蜗牛
2024/04/22
2.3K0
公司来了个大神,三方接口调用方案设计的真优雅~~
HTTPS协议
众所周知,HTTP协议是直接进行明文传输的,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,因此通信过程非常容易遭遇劫持、监听、篡改。严重情况下,会造成恶意的流量劫持。
Liusy
2022/01/11
7340
HTTPS协议
电商系统中API接口防止参数篡改和重放攻击(小程序/APP)
来源:https://www.cnblogs.com/jurendage/p/12886352.html
良月柒
2021/01/25
1.4K0
电商系统中API接口防止参数篡改和重放攻击(小程序/APP)
Java中的微信支付(1):API V3版本签名详解
最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的 API 已经发展到V3版本,采用了流行的 Restful 风格。
码农小胖哥
2020/10/30
1.9K0
Java中的微信支付(1):API V3版本签名详解
Java中的微信支付(1):API V3版本签名详解
1. 前言 最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的 API 已经发展到V3版本,采用了流行的 Restful 风格。 微信支付V2与V3的区别 今天来分享微信支付的难点——签名,虽然有很多好用的 SDK 但是如果你想深入了解微信支付还是有帮助的。 2. API 证书 为了保证资金敏感数据的安全性,确保我们业务中的资金往来交易万无一失。目前微信支付第三方签发的权威的 CA 证书(API 证书)中提供的私钥来进行签名。通过商户平台你可以设置
程序猿DD
2023/04/04
2K0
Java中的微信支付(1):API V3版本签名详解
支付宝接口的数字签名
某些情况下(例如用户扫码支付成功时),支付宝会给商户系统发送异步通知。在发送异步通知时,支付宝会对通知参数进行签名,并将 “签名字符串 sign” 作为通知参数发送给商户系统。支付宝签名的步骤是:
真正的飞鱼
2023/01/30
6100
大厂案例 - 通用的三方接口调用方案设计(上)
在为第三方系统提供接口时,关键是确保数据的完整性、安全性和防止重复提交。以下是一个基于API密钥(Access Key/Secret Key)和回调机制的设计方案,具有多层次的安全保障。
小小工匠
2024/05/26
4K0
大厂案例 - 通用的三方接口调用方案设计(上)
这面试题我遇到过,两次。
印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,于是我就连蒙带猜的,朝着接口幂等性的方向去答了。
why技术
2021/06/10
5010
这面试题我遇到过,两次。
这才叫 API 接口设计!
大家好,我是鱼皮,前段时间在 星球 里看到了一位小伙伴分享的文章《API 接口设计最佳实践》,我也读了一遍,写的确实好,给大家分享一下,相信对后端开发的小伙伴会很有帮助。
程序员鱼皮
2022/04/08
2.8K0
这才叫 API 接口设计!
Java支付宝接口开发【面试+工作】
Java支付宝接口开发【面试+工作】 最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到。用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入方式都比微信的容易理解和操作,也不用自己写页面,接入起来比较方便,毕竟是支付起家的,比微信支付少很多坑,下面就分别介绍着两种支付的接入方法。 支付宝支付 1、申请签约 目的是得到开发使用的合作伙伴身份(PID)和MD5秘钥,申请地址(即时到账收款):https://b.al
Java帮帮
2018/03/15
2.5K0
Java支付宝接口开发【面试+工作】
iOS 微信支付开发(更新版)
本文为以前做的项目总结,由于相关支付 SDK 迭代,原文已经不满足需求,故作如下更新,供大家参考,另外增加常见问题总结。
网罗开发
2021/01/29
1.2K0
iOS 微信支付开发(更新版)
谈谈微信支付曝出的漏洞
昨天(2018-07-04)微信支付的SDK曝出重大漏洞(XXE漏洞),通过该漏洞,攻击者可以获取服务器中目录结构、文件内容,如代码、各种私钥等。获取这些信息以后,攻击者便可以为所欲为,其中就包括众多媒体所宣传的“0元也能买买买”。
美的让人心动
2018/07/30
9980
谈谈微信支付曝出的漏洞
保证接口数据安全的10种方案
我们日常开发中,如何保证接口数据的安全性呢?个人觉得,接口数据安全的保证过程,主要体现在这几个方面:一个就是数据传输过程中的安全,还有就是数据到达服务端,如何识别数据,最后一点就是数据存储的安全性。今天跟大家聊聊保证接口数据安全的10个方案。
捡田螺的小男孩
2023/02/24
1.4K0
保证接口数据安全的10种方案
我所理解的接口设计
前言 自己做接口开发的时间也算不短了(三年),想写这篇文章其实差不多已经有一年多的时间了。我将从下面的方向来对我所理解的接口设计做个总结: 接口参数定义 -> 接口版本化的问题 -> 接口的安全性 -> 接口的代码设计 -> 接口的可读性 -> 接口文档 -> 我遇到的坑 接口参数定义 接口设计中往可以抽象出一些新的公共参数,从事了近三年的接口开发工作中,我目前能想到了一些较为常见的公共接口参数如下: 公共参数含意定义该参数的意义timestamp毫秒级时间戳1.客户端的请求时间标示 2.后端可以做请求过期
前端教程
2018/03/29
7170
浅谈移动支付测试
现在在线支付是微信钱包和alipay的天下,不管你是买瓶水,还是买个大件电器,都可以在线支付解决。不仅支付方便快捷,而且不用找零。
赵云龙龙
2019/10/08
2.4K0
浅谈移动支付测试
SpringBoot 如何保证接口安全?老鸟们都是这么玩的!
对于互联网来说,只要你系统的接口暴露在外网,就避免不了接口安全问题。 如果你的接口在外网裸奔,只要让黑客知道接口的地址和参数就可以调用,那简直就是灾难。
闻说社
2023/03/13
1.4K0
Android 微信支付开发流程
项目中要用到支付功能,需要支付宝支付、微信支付、银联支付,所以打算总结一下,方便以后的查阅,也方便大家, 用到的地方避免再次被坑。 今天我们就主要介绍一下微信支付,其他支付也写了对应教程,并且给出了连接。
网罗开发
2021/01/29
2.7K0
Android 微信支付开发流程
python自行实现支付宝证书签名&验签全流程[通俗易懂]
这里不得不吐槽下支付宝文档,自行实现签名全给的是参考java sdk实现,网上证书签名和验签文章也没几篇。这里给大家分享下自己实现的全过程,希望能够避免大家少踩点坑。 最后ps:若是支付宝官方觉得我这篇python自行实现支付宝证书签名和验签可以给用户当做参考的话,拿走不谢,哈哈!!!
全栈程序员站长
2022/08/26
1.4K0
API接口签名验证,你学废了吗
为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。
Java技术精选
2021/08/16
2.7K0
一篇文章解锁微信支付
随着微信小程序的发展,越来越多的移动端应用选择了微信产品作为媒介。无论是公众号开发还是小程序开发,微信支付永远都是绕不开的话题。由于微信支付涉及了很多场景,本文我们只学习如何在公众号、小程序中接入微信支付。
Java旅途
2021/09/24
1.4K0
推荐阅读
相关推荐
公司来了个大神,三方接口调用方案设计的真优雅~~
更多 >
LV.5
这个人很懒,什么都没有留下~
目录
  • rsync -- 192.168.0.164
    • rsync介绍
    • 服务端部署rsync (守护进程方式)
  • ---------------------------------
  • ---------------------------------
    • 客户端部署
    • 测试传送
    • 非密钥传输:
    • 密钥传输:
    • rsync重要参数
    • --delete 无差异同步
    • --exclude=file 排除指定文件
    • rsync错误集锦
    • 错误1:
    • 错误2:
    • 错误3:
    • 错误4:
    • 错误5:
    • 错误6
    • 错误7
    • 错误8
    • 错误9:
    • 错误10:
    • rsync的使用
    • rsync 客户端拉取 服务器的 backup目录中文件到本地目录
    • rsync 客户端拉取 服务器的 backup目录到本地 /var/log 目录
    • rsync 客户端拉取 服务器的 backup目录中的文件 不含 backup目录到本地 /var/log 目录
    • 陈雷雷blog:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档