rsync介绍

rsync用来定时备份服务器中的文件或者目录,有三种工作模式,本地复制,使用系统用户认证,守护进程方式,开源高效。同步工具,把一台机器上的文件同步都另一台机器 。默认使用873端口

选项

-a           #归档模式传输, 等于-tropgDl
-v #详细模式输出, 打印速率, 文件数量等
-z #传输时进行压缩以提高效率
--delete #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件 ------------------- -a 包含 ------------------
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-D #保持设备文件信息
---------------------------------------------- -L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
$RSYNC_PASSWORD # 用来存放rsync密码的变量,使用之后可以不使用--password-file=xxx
# 远程传送 复制
scp 源文件 目标 上传到另一台机器
scp yum.log root@10.0.0.41:/root/ 从另一台机器下载
scp root@10.0.0.41:/root/yum.log /root -r 传送目录
推 scp -r /etc root@10.0.0.41:/root/
拉 scp -r root@10.0.0.41:/root/ /etc http 80
https 443
rsync 873
ftp 21
ssh 22 C/S 架构
client/server

小提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令,一个rsync相当于scp、cp、rm,但是还优于他们的每一个命令。

备份类型

增量备份

​ 基于全部备份,当客户端A中有file1、file2、file3三个文件,服务器中有已经备份的file1,那么这个时候只会备份,file2和file3,在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。

全部备份

​ 会把客户端备份的内容全部备份到,服务器中。

差异备份

​ 假设我们在第一天也进行一次完全备份。第二天差异备份时,会备份第二天和第一天之间的差异数据,而第二天的备份数据是完全备份加第一次差异备份的数据。

rsync的使用方法

# 推
# 没有/的情况是备份整个目录
rsync -avz /etc root@10.0.0.41:/backup # 有/的情况是备份目录里面的内容
rsync -avz /etc/ root@10.0.0.41:/backup # 拉
rsync -avz root@10.0.0.41:/etc/sysconfig/network-scripts/ifcfg-eth* /tmp

rsync的传输模式

本地传输模式

# 语法
rsync [OPTION...] SRC... [DEST] # 复制文件
rsync /tmp/ifcfg-eth1 /opt/ # 拷贝目录
rsync -a /etc /opt/

远程传输模式

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉: rsync [选项] 用户名@主机ip:路径 本地路径
[root@web01 /tmp]# rsync -avz root@10.0.0.41:/etc/hostname ./ Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
推: rsync [选项] 本地文件或者目录 用户名@主机ip:路径

这种模式借助的是ssh协议的22端口,当默认端口更改之后需要使用选项去指定。

守护进程模式

Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
# 拉: rsync [-avz] zls_bak@10.0.0.41::[模块] 源文件
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
# 推: rsync [-avz] 源文件 zls_bak@10.0.0.41::[模块]

环境准备

主机名 wanIP lanIP 角色
web01 10.0.0.7 172.16.1.7 客户端
backup 10.0.0.41 172.16.1.41 服务端

服务端 : 备份的文件放在哪台主机的磁盘谁就是服务端。

1、安装服务端

yum -y install rsync

2、修改配置文件通常以.conf .cfg .cnf 结尾的

[root@web01 /tmp]# vi /etc/rsyncd.conf
uid = rsync # 进程启动的用户
gid = rsync # 指定进程启动的gid
port = 873 # rsync服务的端口
fake super = yes # 无需让rsync以root的身份运行,允许接收文件的完整属性。
use chroot = no # 禁锢指定的目录path
max connections = 200 # 最大连接数
timeout = 600 # 超时时间单位s
ignore errors # 忽略错误
read only = false # 不只读,可读写
list = false # 不允许别人查看模块名
auth users = rsync_backup # 传输文件的用户
secrets file = /etc/rsync.passwd # 传输用户的密码文件
log file = /var/log/rsyncd.log # 日志文件
#####################################
[backup] # 模块名
comment = welcome to oldboyedu backup! # 注释
path = /backup # 备份的目录

3、根据配置文件内容创建需要的环境

useradd rsync -s /sbin/nologin -M
mkdir /backup
chown -R rsync.rsync /backup/ [root@web01 /tmp]# vi /etc/rsync.passwd
rsync_backup:123 echo 'rsync_backup:123' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd # 密码文件必须是这个权限

4、启动服务加入开机自启

systemctl start rsyncd
systemctl enable rsyncd
netstat -lntup |grep 873
ps -ef | grep rsync

5、安装客户端

yum -y install rsync
# 客户端不用修改配置文件

6、配置客户端密码文件

echo '123' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

5、使用

推: rsync -avz /etc/passwd rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd

脚本使用rsync密码变量

export RSYNC_PASSWORD=123
rsync -avz ./ rsync_backup@10.0.0.41::backup

rsync无差异同步

--delete

保证服务器上的内容和本地的内容是一致的,如果服务器上的内容多了会被删除,使用很危险 。

[root@web01 ~]# rsync -avz ./ --delete rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd

rsync限速

--bwlimt

限制对磁盘的I/O

[root@web01 ~]# rsync -avz ./ --bwlimit=1 rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd

rsync 服务配置_rsync命令使用方法的更多相关文章

  1. fedora25的免密码rsync服务配置

      目标:实现免密同步数据: 1.安装rsync包: 2.手工添加配置文件: cat  /etc/rsyncd.conf # See rsyncd.conf man page for more opt ...

  2. sshd服务安装-ssh命令使用方法

    SSHD服务概述 介绍:SSH协议:安全外壳协议.为 Secure Shell的缩写.SSH 为建立在应用层和传输层基础上的安全协议. 作用:SSHD服务使用SSH协议可以用来进行远程控制,或在计算机 ...

  3. SFTP服务配置以及命令/代码操作

    POM <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...

  4. 【转】mac os x配置adb命令的方法,苹果电脑设置adb命令的方法

    http://www.myexception.cn/operating-system/1636963.html 步骤如下: 1. 启动终端Terminal (如果当前用户文件夹下已有.bash_pro ...

  5. CentOS7下rsync服务的基本详解和使用

    第1章 Rsync基本概述 1.1 什么是Rsync rsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具.适用于多个平台.从软件名称可以看出来是远程同步的意思(re ...

  6. 基于CentOS7.5的 Rsync 服务详解

    第1章 Rsync概述 1.1 Rsync基本概述 rsync是一款开源的备份工具,可以在不同服务器(主机)之间进行同步备份, 可实现完全备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用 ...

  7. Windows Server 2019远程桌面服务配置和授权激活

    参考Windows Server 2016远程桌面服务配置和授权激活方法可适用于Windows Server 2019     Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行 ...

  8. CentOS7下rsync服务端与Windows下cwRsync客户端实现数据同步配置方法

    最近需求想定期备份服务器d盘的数据到Linux服务器上面,做个笔记顺便写下遇到的问题 以前整过一个win下的cwrsync(客户端)+rsync(服务端:存储)的bat脚本 和整过一个Linux下的r ...

  9. 配置rsync服务,数据同步。

    这部分设计服务器端和客户端. [服务器端] 如果服务器没有安装rsync服务则使用yum安装rsync服务. yum install rsync 然后 vim /etc/xinetd.d/rsync ...

随机推荐

  1. BUAA_OO_第四单元

    一.UML解析器设计 ​ 先看下题目:第四单元实现一个基于JDK 8带有效性检查的UML(Unified Modeling Language)类图,顺序图,状态图分析器 MyUmlInteractio ...

  2. 一文简述JAVA内部类和异常

    内部类和异常 内部类 在一个类的内部定义的一个类,例如,A类中定义了一个B类,则B类相对于A类就是内部类,而A类相对于B类就是外部类 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 pub ...

  3. C#与Python交互方式

    前言: 在平时工作中,需求有多种实现方式:根据不同的需求可以采用不同的编程语言来实现.发挥各种语言的强项 如:Python的强项是:数据分析.人工智能等 .NET 开发桌面程序界面比Python更简单 ...

  4. 6.4map用法

    map是映射也是常用的STL容器,可以将任何基本类型映射到任何的基本类型,如 map<char,int>mp 一.基本定义 map<typename,typename>mp; ...

  5. 【CTF】Pwn入门 XCTF 部分writeup

    碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! ...

  6. pandas(3):索引Index/MultiIndex

    目录 一.索引概念 二.创建索引 ①导入数据时指定索引 ②导入数据后指定索引df.set_index() 三.常用的索引属性 四.常用索引方法 五.索引重置reset_index() 六.修改索引值( ...

  7. 浙大MOOC《数据结构》随笔

    第一讲 基本概念 1.1 什么是数据结构 图书摆放问题: 新书如何插入? 先定类别,再二分查找 怎么找到指定某本书? 二分查找 写程序实现一个函数PrintN 循环实现 void PrintN(int ...

  8. Fiddler 菜单功能 Host配置 请求伪造 接口调试

    菜单功能: Fiddler工具栏上每个按钮的功能只要鼠标停留在按钮上面就会出现英文描述的功能. 小气泡:增加备注,点击气泡即可对下面捕捉到的会话增加备注(很少使用) Replay回放按钮:较常用,捕捉 ...

  9. JMeter 实战案例

    案例1:博客网站后端测试 案例2:JPetStore 应用 案例1:博客网站后端测试 测试目标 测试博客网站后端的常用 HTTP 接口的访问方法. 展示 HTTP 请求的各类使用方法. 展示提取 JS ...

  10. LINQPad,我的C#/.NET学习诀窍

    LINQPad,我的C#/.NET学习诀窍 在我以往的文章中,尤其涉及代码演示的,都使用了同一个工具--LINQPad.但许多客户面对我分享的.linq源文件都迷茫不知所措,因此有必要来聊聊一下这个强 ...