首页 > 其他分享 >数据同步rsync

数据同步rsync

时间:2023-12-07 18:32:37浏览次数:31  
标签:tmp rsync 同步 log 数据 41 avzP root

一.Rsync本地模式和远程模式

1.命令说明

纯通过rsync的命令,来实现,数据目录A 拷贝到数据目录B

也就是模拟cp的用法 很简单

rsync  [选项]  源数据   目的数据
1.安装
yum install rsync -y

2.命令语法,分几个模式
- 本地模式
rsync 参数   源路径  目标路径
rsync  -xxxxx    /var/log    /tmp

- 远程模式,推送方式,把自己的数据推送到另一台机器上(上传)
语法1 ,rsync默认走ssh协议
rsync 参数  源路径  user@ip:目标路径
rsync  -avzP  /var/log/      [email protected]:/tmp/

语法2
rsync 参数 源路径  user@ip::目标路径
- 远程模式,拉取方式,拉取别人机器的数据到自己的机器上(下载)
rsync  参数   user@ip:源路径   目标路径
rsync  参数   user@ip::源路径目标路径
rsync -avzP  [email protected]:/var/log/  /tmp/

参数解释
    -v        详细模式输出
    -a        归档模式,递归的方式传输文件,并保持文件的属性,等同于 -rlptgoD
    -r        递归拷贝目录
    -l        保留软链接
    -p        保留原有权限
    -t         保留原有时间(修改)
    -g        保留属组权限
    -o         保留属主权限
    -D        等于--devices  --specials    表示支持b,c,s,p类型的文件
    -R        保留相对路径
    -H        保留硬链接
    -A        保留ACL策略
    -e         指定要执行的远程shell命令
    -E         保留可执行权限
    -X         保留扩展属性信息  a属性

 比较常用的组合参数
 rsync -avzP
-a    保持文件原有属性
-v    显示传输细节情况
-z    对传输数据压缩传输
-P    显示文件传输的进度信息

你在命令行里,执行命令,喜欢看到命令的执行过程 
-avzP

脚本里面?
bash xxx.sh
rsync -az  

2.本地模式

linux机器本身,数据来回发送

以后cp可以放一旁了,用rsync当cp使就行

 用rsync,支持增量备份

对文件同步
[root@rsync-41 ~]#yum install rsync -y
把本地的的/var/log/messages 文件 拷贝到/opt下

拷贝单个文件
[root@rsync-41 ~]#rsync -avzP /var/log/messages /opt
sending incremental file list
messages
        985,500 100%   56.79MB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 123,300 bytes  received 35 bytes  246,670.00 bytes/sec
total size is 985,500  speedup is 7.99

拷贝单个大文件,拷贝大文件时,要注意限速,否则占用磁盘IO太多
--bwlimit=10

先生成一个5G文件
dd bs=100M count=50 if=/dev/zero  of=/var/log/my_self.log
rsync -avzP /var/log/my_self.log  /opt
iotop查看磁盘的读写IO情况

限制单个大文件的传输,速度只给他20M每秒
[root@rsync-41 ~]#rsync -avzP --bwlimit=20  /var/log/my_self.log /opt
sending incremental file list
my_self.log
    393,117,696   7%   20.14MB/s    0:03:55  

对目录同步(注意语法的区别)
拷贝后的数据,是否携带该目录本身
[root@rsync-41 ~]#rsync -avzP /var/log    /opt
[root@rsync41 /opt]#ls
log

不拷贝该目录本身,拷贝目录下的数据
[root@rsync-41 ~]#rsync -avzP /var/log/    /opt

测试文件夹的增量拷贝
[root@rsync41 ~]#mkdir /{test1,test2}
[root@rsync41 ~]#touch /test1/{1..5}.png
[root@rsync41 ~]#rsync -avzP /test1/  /test2
sending incremental file list
./
1.png
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=4/6)
2.png
              0 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=3/6)
3.png
              0 100%    0.00kB/s    0:00:00 (xfr#3, to-chk=2/6)
4.png
              0 100%    0.00kB/s    0:00:00 (xfr#4, to-chk=1/6)
5.png
              0 100%    0.00kB/s    0:00:00 (xfr#5, to-chk=0/6)

[root@rsync-41 ~]#echo "123" >/test1/1.png 
[root@rsync-41 ~]#rsync -avzP /test1/   /test2
sending incremental file list
1.png
              4 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=4/6)

sent 175 bytes  received 35 bytes  420.00 bytes/sec
total size is 4  speedup is 0.02

无差异化拷贝
使用--delete参数 将目标目录的数据清空,保证完全和源目录的数据一致
rsync -azvP --delete  /test1/   /test2/
[root@rsync-41 /test2]#rsync -azvP --delete  /test1/   /test2/
sending incremental file list
deleting 行者孙.png

# rsync拷贝文件夹,携带目录本身
# 把test1目录本身,连带着数据,都拷贝到test2下
rsync -avzP /test1    /test2/
最终会生成
/test2/test1/ 该文件夹的数据,和源数据目录 /test1是一样的

对rsync限速,因为rsync在传输数据时,会占用大量的磁盘IO,以及如果是网络传输的话,占用网络带宽,会导致其他程序受影响
所以rsync这样的备份服务,都是在夜里,凌晨操作,被影响其他程序
--bwlimit

实现 /root  和/tmp 完全一样
[root@rsync-41 /test2]#rsync -avzP --delete  /root/   /tmp/

3.远程模式

把rsync-41   /root下的数据

拷贝到 nfs-31   /tmp下

实现如scp的作用

#PUSH 推送模式,上传模式
把rsync-41   /root下的数据,拷贝到 nfs-31   /tmp下
登录rsync41
用ip形式、再用主机名形式
添加无差异化参数,该参数,慎用!搞清楚了你在做什么!
rsync -avzP  --delete  /root/    [email protected]:/tmp/

#PULL 拉取模式(你要琢磨,数据最终放在了哪)
# 把rsync-41   /root下的数据,拷贝到 nfs-31   /tmp下
rsync -avzP   [email protected]:/root/    /tmp/

# 拉取rsync41的/etc/passwd文件到 nfs-31的/opt下,使用主机名通信
rsync -avzP root@rsync-41:/etc/passwd    /opt/

#传输整个目录,包含目录本身
rsync -avzP   [email protected]:/root    /tmp/

#只传输目录下的文件,不包含目录本身
rsync -avzP   [email protected]:/root/    /tmp/

#不同主机之间同步数据 --delete
rsync -avzP --delete   [email protected]:/root   /tmp/
#如果/和一个空目录进行完全同步,那么效果和删根一样

#坑:传输过程不限速导致带宽被占满 ,--bwlimit=50
远程传输 nfs-31下的 /tmp/2G.log   备份到  rsync-41的/opt下
rsync -avzP   /tmp/2G.log   [email protected]:/opt

-a   保持文件原有属性
-v   显示传输过程
-z   压缩传输数据
-P   显示传输进度

远程备份文件,且改名
[root@nfs-31 /tmp]#rsync -avzP   /tmp/2G.log   [email protected]:/opt/2G.logggggggggggggggggggggg

远程传输 nfs-31下的 /tmp/2G.log   备份到  rsync-41的/opt下,且是无差异化备份
等于清空原有/opt下的数据
rsync -avzP --delete   /tmp/2G.log   [email protected]:/opt/2G.log

标签:tmp,rsync,同步,log,数据,41,avzP,root
From: https://blog.51cto.com/yiyuan/8726326

相关文章

  • 在使用openpyxl库操作带有合并单元格的Excel文件时,插入新的行或列可能会导致后面的数
    在使用openpyxl库操作带有合并单元格的Excel文件时,插入新的行或列可能会导致后面的数据错乱。这是因为openpyxl库在插入或删除行或列时,不会自动更新合并单元格的范围1。解决这个问题的一种方法是在插入新的行或列之前,先保存所有合并单元格的范围,然后在插入新的行或列之后,根据......
  • 如何在 PyQt 中实现异步数据库请求
    需求开发软件的时候不可避免要和数据库发生交互,但是有些SQL请求非常耗时,如果在主线程中发送请求,可能会造成界面卡顿。这篇博客将会介绍一种让数据库请求变得和前端的ajax请求一样简单,且不会阻塞界面的异步请求方法。实现过程在实现异步请求之前,需要先明确一下函数签名:def......
  • KubeSphere Marketpalce 上新!Databend Playground 助力快速启动数据分析环境
    12月5日,DatabendLabs旗下DatabendPlayground(社区尝鲜版)成功上架青云科技旗下KubeSphereMarketplace云原生应用扩展市场,为用户提供一个快速学习和验证Databend解决方案的实验环境。关于DatabendPlaygroundDatabend是使用Rust研发、完全⾯向云架构、基于对象存......
  • Java基本数据类型转换
    1.Java基本数据类型转换1.1自动类型转换当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型这个就是自动类型转换数量类型按精度大小排序为:char<int<long<float<doublebyte<short<int<long<float<doubleinta='c';doubled=80注意:有多种类型......
  • 11K+ Star!图解计算机网络、操作系统、计算机组成、数据库!
    大家好,我是Java陈序员。俗话说得好,面试造火箭,入职拧螺丝。我们在工作中,其实很少用到一些计算机底层知识,往往只要编码完事。但是,知其然还要知其所以然,我们不仅要做一个合格的“CV工程师”,更是要掌握一些底层原理!计算机基础知识,作为计算机的底层原理,往往是晦涩难懂,如果没用心的......
  • controller接口返回的数据特殊修订字段
    1.对某些字段指定额外的返回值核心是使用@JsonProperty("cluster_name")注解来指定接口返回的时候数据解析的字段@SerializedName注解是gson格式化输出和解析的时候用来解析的packagedelta.api.domain;importcom.fasterxml.jackson.annotation.JsonProperty;importcom.g......
  • Java数据类型
    1.数据类型每一种数据都定义了明确的数据类型,在内存中分配大小不同的内存空间(字节)8大基本数据类型整数类型:存放整数byte,1个字节short,2个字节int,4个字节(默认)long,8个字节浮点类型(小数)float,4个字节double,8个字节(默认)字符型:char,2个字节布尔型:boolean,1个字......
  • windows 安装mysql 和不能通过ip访问到数据库
     一、确认windows是否已经安装mysql1.按【Win+R】打开运行2.输入【services.msc】打开服务3、在服务列表中查找MySQL,如果有mysql服务则表示Windows已经安装MySQL,如果没有MySQL服务则表示Windows没有安装MySQL二、下载MySQL安装包1、mysql官网下载地址  https://d......
  • EF CodeFirst 数据注解特性详解
    数据注解特性是.NET特性,可以在EF或者EFCore中,应用于实体类上或者属性上进行生成数据表,并对表名、字段类型、长度、主键、是否为空、外键等进行设置。1、命名空间在EF6和EFCore中,数据注解特性包含在System.ComponentModel.DataAnnotations命名空间和System.ComponentModel.Dat......
  • 各种类型数据库的连接字符串
    DataType.MySqlDataSource=127.0.0.1;Port=3306;UserID=root;Password=root;DataBase=cccddd;Charset=utf8;SslMode=none;Minpoolsize=1DataType.PostgreSQLHost=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Minimu......