备份服务器(Rsync)

1、介绍备份的场景

1、什么情况下需要备份

一般数据比较重要的情况下,数据如果丢失很容易找不回来了的,建议备份。

2、什么是备份

将原有的数据复制一份或几份存起来,以备不时之需。

3、能不能不做备份

可以,但是数据丢失不要后悔。

4、备份的工具

本地备份工具:cp

远程备份工具:scp、Rsync

scp :全量备份
rsync : 增量备份

5、scp的格式

1、推数据

将本机的文件上传到其他服务器

scp [参数] [本机文件的路径] [用户]@[ip]:[远程主机的路径]

2、拉数据

将其他服务器上的文件下载到本机

scp [参数] [用户]@[ip]:[远程主机的路径] [本机文件的路径]

3、scp中参数

-p : 保留原文件的修改时间,访问时间和访问权限。

案例1:将DB01服务器上etc目录中所有的普通文件打包,备份到rsync服务器的/tmp目录中

[root@db01 ~]# scp /root/etc.tar.gz root@172.16.1.41:/tmp/

案例2:要求rsync服务器主动备份db服务器的etc.tar.gz

[root@rsync tmp]# scp root@172.16.1.51:/root/etc.tar.gz /tmp/

案例3:要求备份etc.tar.gz文件,且时间尽可能不改变

[root@db01 ~]# scp -p etc.tar.gz root@172.16.1.41:/tmp/

案例4:要求将db01的/root目录上传到rsync的/opt目录中

[root@db01 ~]# scp -r /root/ root@172.16.1.41:/opt/

2、介绍Rsync

rsync是远程增量文件备份工具。

2、rsync的特性

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

3、场景

cron + rsync : 跟定时任务进行绑定。

rsync + innotify : 以守护进程的方式同步文件

灾备

容灾

4、Rsync的传输模式

1、本地传输模式

1、格式

rsync [参数] [原来的路径] [现在的路径]

2、案例

案例1:将/tmp/etc.tar.gz上传到/mnt目录下

[root@rsync opt]# rsync /tmp/etc.tar.gz /mnt/
[root@rsync opt]# ll /mnt/
total 11136
-rw-r--r--. 1 root root 11402223 Oct 19 16:04 etc.tar.gz

3、参数

-t # 保持文件时间信息
-r # 递归传输目录及子目录

常用的参数组合:-avzP

案例:将/root目录传输到/mnt目录

[root@rsync opt]# rsync -r /root/ /mnt/

2、远程传输模式

1、推数据

rsync [参数] [本地文件路径] [用户]@[ip]:[远程路径]

案例:
将3.txt传输到db01服务器上的/opt目录

[root@rsync tmp]# rsync -avzP 3.txt root@172.16.1.51:/opt/

2、拉数据

[root@rsync tmp]# rsync -avzP root@172.16.1.51:/opt/3.txt /tmp/

3、以守护进程的方式

1、为什么需要以守护进程的方式传输

1、保证数据安全
2、数据归档

2、步骤

1、编写rsync的守护进程的配置文件

1、编写配置文件
/etc/rsyncd.conf

2、创建rsync的启动用户
[root@rsync tmp]# useradd rsync -r -M -s /sbin/nologin

3、创建密码文件
[root@rsync tmp]# touch /etc/rsync.passwd

4、创建用户和密码关联数据
[root@rsync tmp]# echo 'rsync_backup:123456' > /etc/rsync.passwd

5、授权密码文件
[root@rsync tmp]# chmod 600 /etc/rsync.passwd

uid = rsync #启动服务的用户id(可以使用名称代替) gid = rsync 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 # 存放密码的文件(权限必须是600,密码是明文) log file = /var/log/rsyncd.log ##################################### [backup] # 备份的模块(backup是模块的名称) comment = welcome to oldboyedu backup! # 提示语 path = /backup # 备份的路径

2、创建备份的目录

1、创建目录
[root@rsync tmp]# mkdir /backup

2、将目录的用户修改成rsync
[root@rsync tmp]# chown rsync.rsync /backup/

3、启动rsync服务

[root@rsync tmp]# systemctl start rsyncd

2、部署客户端

1、安装rsync

yum install rsync -y

2、开始传输

1、输入密码传输

[root@db01 opt]# rsync -avzP /opt/3.txt rsync_backup@172.16.1.4

2、使用密码文件

[root@db01 opt]# echo "123456" > /etc/rsync.passwd
[root@db01 opt]# chmod 600 /etc/rsync.passwd
[root@db01 opt]# rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd

3、使用变量的方式进行传输

[root@db01 opt]# export RSYNC_PASSWORD=123456
[root@db01 opt]# rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup

5、Rsync + inotify

怎样实现rsync根据目录的变化去实时同步数据。

inotify就是实时监控目录中文件的变化。

1、安装inotify(客户端)

yum -y install inotify-tools

2、测试inotify监控目录

inotifywait -mr --format "%Xe %w %f" -e modify,close_write,create,delete [监控的目录]

3、实时同步/opt目录

inotifywait -mr --format "%Xe %w %f" -e modify,close_write,create,delete /opt/ | while read line ;do rsync -avzP /opt/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd ; done

4、文艺青年版
DIR=/opt/
USERNAME=rsync_backup
IP="172.16.1.41"
MODULE=backup

互联网架构 之备份服务器 rsync的更多相关文章

  1. GIAC全球互联网架构大会——互联网技术架构未来

    GIAC全球互联网架构大会是高可用架构技术社区推出的面向架构师.技术负责人及高端技术从业人员的技术架构大会.中国拥有全球最大的互联网用户及移动互联网用户,如何使用合适的架构来搭建互联网系统,是每一个互 ...

  2. 2016GIAC全球互联网架构大会日程分享

    GIAC全球互联网架构大会是中国互联网技术领域一年一度的行业盛事,每年从互联网架构最热门高压应对.云计算.大数据.机器学习.分布式架构等领域甄选前沿的有典型代表的技术创新及研发实践的架构案例,分享他们 ...

  3. 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  4. 朱晔的互联网架构实践心得S2E3:品味Kubernetes的设计理念

    Kubernetes(k8s)是一款开源的优秀的容器编排调度系统,其本身也是一款分布式应用程序.虽然本系列文章讨论的是互联网架构,但是k8s的一些设计理念非常值得深思和借鉴,本人并非运维专家,本文尝试 ...

  5. 朱晔的互联网架构实践心得S1E10:数据的权衡和折腾【系列完】

    朱晔的互联网架构实践心得S1E10:数据的权衡和折腾[系列完] [下载本文PDF进行阅读] 本文站在数据的维度谈一下在架构设计中的一些方案对数据的权衡以及数据流转过程中的折腾这两个事情.最后进行系列文 ...

  6. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...

  7. 朱晔的互联网架构实践心得S1E8:三十种架构设计模式(下)

    朱晔的互联网架构实践心得S1E8:三十种架构设计模式(下) [下载本文PDF进行阅读] 接上文,继续剩下的15个模式. 数据管理模式 16.分片模式:将数据存储区划分为一组水平分区或分片 一直有一个说 ...

  8. 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)

    朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上) [下载本文PDF进行阅读] 设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践.在经过多年的软件开发实践之后,回过头来去看23种设 ...

  9. 朱晔的互联网架构实践心得S1E6:给飞机换引擎和安全意识十原则

    朱晔的互联网架构实践心得S1E6:给飞机换引擎和安全意识十原则 [下载本文PDF进行阅读] 本文有两个部分,先介绍一下给飞机换引擎这个事情我的一些经验,因为篇幅较短然后介绍一下安全意识方面的一些心得. ...

  10. 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件

    朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件 [下载本文PDF进行阅读] 一般而言中间件和框架的区别是,中间件是独立运行的用于处理某项专门业务的CS程序,会有配套的客户端和服务端,框架虽然也 ...

随机推荐

  1. Javascript格式化数字字符串,如手机号,银行卡号的格式化

    手机号13312341234转化成133 1234 1234 //方式一 function format_tel(tel){ tel = String(tel); return tel.replace ...

  2. OC基础 - iOS在枚举赋值时为何采用左移格式

    枚举值 1 - iOS 枚举成员在赋值时往往是如下模式:左移对齐 2 - 为何这般设计 ?其一提高了阅读性:其二便于计算,能够更好的表达枚举值的含义 1 #import "ViewContr ...

  3. 浏览器中通过js获取用户语言环境方法

    用户语言环境存在navigator对象中,不同浏览器分别通过如下方法获取用户浏览器语言.操作系统语言.   IE6 IE7 IE8 Firefox Chrome Safari Opera naviga ...

  4. p标签设置行数,超出部分用省略号隐藏

    p { overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 2; word-wrap: break-word; display ...

  5. Tomcat 配置文件详解之-- server.xml

    一.背景 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat ...

  6. interpreting non ascii codepoint

    ProtoBuf 在Windows VS2019 C++平台上的使用 这两天想着了解一下protobuf,搜索了一篇博客照着弄了一下 https://blog.csdn.net/weixin_4478 ...

  7. .NET在单台Windows2008下百万TCP连接测试

    测试客户端: 客户端程序建立TCP连接,发送一条几个字节的数据. 虚拟机8台,PC机8台,服务器1台. 设置MaxUserPort=60000,有一台机没有设置约在1.5万左右.最后因为差一点到100 ...

  8. Java流程控制练习

    练习 打印三角形及Debug的使用 public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for(in ...

  9. ATM+购物车导图

    1 #项目需求: 1.额度15000或者自定义 ---> 注册功能 2.实现购物商城,买东西假如购物车,调用信用卡接口结账 ---> 购物功能.支付功能 3.可以提现,手续费5% ---- ...

  10. java使用minio上传下载文件

    Minio模板类: @RequiredArgsConstructor public class MinioTemplate implements InitializingBean { private ...