Rsync 全球产线同步至中国产线

news/2024/4/20 23:35:23/

Rsync 全球产线同步至中国产线

任务描述

全球产线的文件存储在一天之内同步至中国产线

背景

  • 全球产线中 90%以上的文件,中国产线已有,文件名和文件大小但是 时间戳不一样
  • 全球产线中到中国产线的网速只有 700k/s
  • 目前全球产线 中数据 2T
  • 7*24 服务不可中断

解决方案

Rsync 介绍

rsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remote sync)。可使本地主机不同分区或目录之间及本地和远程两台主机之间的数据快速同步镜像,远程备份等功能。

在同步备份时,默认情况下,rsync通过其独特的“quick check”算法,仅同步大小或者最后修改时间发生变化的文件或目录(也可根据权限,属主等变化同步,需要制定参数)。甚至是只同步一个文件里变化的内容部分,所以可以实现快速的同步数据的功能。

数据初始化

方案一:全量初始化

因网速限制,传输 2T 的数据需要几十天时间,故否掉$

方案二:更新现有文件元数据

什么样的文件不需要更新
  • default:源目录和目标目录中,跳过文件名,文件大小,文件 更新时间的文件. 执行时间:27 分钟
  • --ignore-times: 源目录和目标目录中,不跳过那些有同样的时间和大小的文件
  • --size-only: 源目录和目标目录中,只跳过大小相同的文件(文件名,文件大小)。执行时间:7 分钟
  • checksum: 根据 checksum 计算文件是否相同。执行时间:3 小时+

综合考虑安全性和速度,default 模式最适合,故需要更新中国产线时间戳与全球一样

故需要把根据现有文件的文件名和文件大小更新为相同时间戳
rsync -a   --size-only --progress  --existing --rsync-path="sudo rsync"   --exclude ".*/" /repo.xxxx/xxxxprod/centos7/ rsync@10.254.162.xxx:/repo.xxx/xxxxprod/centos7/
  • --existing: 仅仅更新那些已经存在于 DST 的文件,而不备份那些新创建的文件
  • -a: archive 模式,即在 DST 的文件保留与 SRC 上的文件的元数据(含时间戳)
  • --progress: 展示传输过程
  • --exclude: 不同步某些文件
  • --rsync-path:指定远程服务器上的rsync命令所在路径信息。(specify the rsync to run on remote machine)

定时任务同步

基本命令

rsync -aHAXxv   --numeric-ids --update --progress   --rsync-path="sudo rsync"   --exclude ".*/" /repo.xxx/xxxxprod/centos7/ rsync@10.254.162.xxx:/repo.xxx/xxxxprod/centos7/
  • H: 保留硬链接
  • A: 保留 ACLs
  • X: 保留外部属性
  • x: 不跨越文件系统的边界(don't cross file-system boundaries)
  • v: 打印详细记录
  • --numeric-ids: 不要按用户/组名映射 uid/gid 值(don't map uid/gid values by user/group name_
  • --update: 如果 DST 的 文件更新,则跳过 (skip files that are newer on the receiver)

性能提升

rsync -aHAXxv   --numeric-ids --update --progress   --rsync-path="sudo rsync"   --exclude ".*/"  -e "ssh -T -c arcfour -o Compression=no -x" /repo.xxx/xxxxprod/centos7/ rsync@10.254.162.254:/repo.xxx/xxxxprod/centos7/
  • e: 指定使用rsh,ssh方式进行数据同步
ssh
  • T: 禁止分配伪终端(turn off pseudo-tty to decrease cpu load on destination.)
  • c arcfour: 用最弱但是最快的加密算法arcfour,需服务器端支持
  • o Compression=no: 关闭SSH压缩(Turn off SSH compression.)
  • x: 禁用X11图形界面转发(turn off X forwarding if it is on by default.)

自动重传

#!/bin/bashwhile [ 1 ]
dorsync -avz --partial source destif [ "$?" = "0" ] ; thenecho "rsync completed normally"exitelseecho "Rsync failure. Backing off and retrying..."sleep 180fi
done

参考教程

  • rsync wiki
  • rsync documents
  • rsync-copying-over-timestamps-only
  • rsync algorithm
  • ssh 中的 -T 参数是干嘛的?
  • The fastest remote directory rsync over ssh archival I can muster (40MB/s over 1gb NICs)
  • Rsync详解

http://www.ppmy.cn/news/721724.html

相关文章

从脉脉宕机15个小时看如何实现高可用性架构

据报道,近日,由于中国联通整治违规互联网接入及大带宽业务,某CDN/IDC服务商业务中断,华为云故障一整天,导致生意帮一整天宕机,脉脉服务器挂了,失联15个小时…… 接着整个经历就非常崩溃了&…

ASP.NET跨平台最佳实践

前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营。有过短暂的失落和迷茫,但技术转型真的没有想象中那么难。回头审视,其实单从语言本身来看,C#确实比Java更优秀(并…

中国移动短信MISC割接

短信息中心错误与中国移动代码的对应关系。MI::zzzz SMSC返回状态报告的状态值为EXPIRED MJ:zzzz SMSC返回状态报告的状态值为DELETED MK:zzzz SMSC返回状态报告的状态值为UNDELIV ML:zzzz SMSC返回状态报告的状态值为ACCEPTD MM:zzzz SMSC返回状态报告的状态值为UNKNOWN MN:zz…

linux升级一般关注什么,升级到Ubuntu 14.04需要注意的几项事情

期待了好久,Ubuntu 14.04在今天终于发布了,作为一个喜欢尝鲜的Ubuntu粉丝,当然要在第一时间升级了,经过了一下午的努力终于升级完成,下面跟大家分享一下升级Ubuntu到14.04需要注意的几项事情。 首先讲一下升级前最好做…

Amazon 新手要知道 100 个问题

1、 为什么亚马逊账户会关联? 同一个只能在亚马逊上注册一个卖家账户。 不能经营或维护多个卖家账户。所 有卖家的后台操作亚马逊都可以检测到,如果亚马逊的程序算法认为某几个账户 都是同一个人来操作,那么这几个账号就会被亚马逊认定为相…

一个程序员的自我修养

目录 第一章 基础编码规范 1.1 命名规范 1.2 常量定义 1.3 代码格式 1.4 OOP 规约 1.5 集合处理 1.6 并发处理 1.7 控制语句 1.8 注释规约 1.9 其它 第二章 异常与日志规范 2.1 异常处理 2.2 日志规约 第三章 数据库规范 3.1 建表规约 3.2 SQL 语句 3.3 ORM 映…

巧用Python时区,用时间记录点点滴滴

巧用Python时区,用时间记录点点滴滴 基础概念 几个时间概念 首先是几个常见的时间概念 GMT 时间:格林威治时间,基准时间UTC 时间:Coordinated Universal Time,全球协调时间,更精准的基准时间&#xff0…

Docker容器化技术教程,24小时快速入门

Docker介绍 Docker简介和安装Docker是什么为什么使用Docker和普通虚拟机的对比打包、分发、部署小结Docker部署的优势Docker通常用来做什么重要概念:镜像、容器安装Ubuntu安装DockerWindows安装Docker Docker架构镜像加速源Docker命令服务相关命令镜像相关命令容器相…

苹果退款_销售和退款政策 - Apple (中国大陆)

中国大陆客户 感谢您在 Apple 购物。我们为您提供了酷炫产品供您选择,无论您是在 Apple 在线商店或是致电 Apple 电话中心(统称 “Apple Store”)购买产品,我们都想使您在了解、评价及购买我们的产品时能获得有益的体验。 和任何其他购物时一样&#xff…

安装java文件全部被清空_清理Windows系统目录下几大无用文件夹

以下这些都是用软件很难或根本无法解决的,通常需手动清理: 1、X:\WINDOWS\Internet Logs 即使只是一般应用,这个目录下的文件在一年以后能有上百M,如果不是2G的话。好在没什么特别的,全部删除就…

开源中国翻译贡献排名靠谱吗?

背景 当我第一次听说在OSC上,大家可以参与翻译频道的文章翻译时,其实我是,是拒绝的。红薯跟我讲可以通过 开源中国翻译频道贡献奖励计划 加特技,贡献最多的用户(前十名)可以获得计算机图书。于是我在 2015-…

卖了个 Chrome 插件,赚了几千美金,但是很后悔!

今天,小编分享一位国外的老哥,花了一个小时,开发的Chrome插件,卖了几千美金,被新雇主拿去做成了“木马”,往用户浏览的网页里狂插入 affiliate 链接。 故事是这样开始的。 当谷歌想撤掉谷歌阅读器的时侯&am…

SpringBoot中 Jackson 日期的时区和日期格式问题

目录 1、使用场景 1.1、数据库MySQL也是有时区的概念的。 1.2、系统时区意味着与计算机的操作系统时区相同。 1.2、SpringBoot默认的Json视图转换框架Jackson也有时区概念 2、代码实现 2.1、解决方案一下在每个带有日期地方加上注解 2.2、只需要配置一个bean实现整体修改…

震惊世界的中国秘方————里面的方子都是一个老中医几十年的心血!!!...

民间秘方,里面的方子都是一个老中医几十年的心血~~很强~~一定要看 说 明1、 本报告所用药物,以食物为主,绝对无毒。2、 为使读者易懂,剂量单位均用旧制,如:斤、两、钱等,有的用碗,是…

centos linux 服务器时间少8个小时的问题

出现这个问题是因为时区不对的问题。中国要设置为上海时区 步骤如下: 1、vi /etc/sysconfig/clock #编辑文件 ZONE"Asia/Shanghai" UTCfalse #设置为false,硬件时钟不于utc时间一致 ARCfalse 2、ln -sf /usr/sh…

python读取outlook邮件内容不同时区会有影响吗_python中的时区问题

问题背景 使用 Python 进行了许久的开发,一直没有踩到时区的坑,最近新的业务中引入了比较多的服务,而且使用 grpc 进行数据通讯,不幸踩到了时区的坑,果然偷的懒最终还是会有报应的,于是梳理下对应的时区问题…

2019,我在几个新的技术领域的尝试和心得

又到一年结束时,回顾这一年,我在几个新的技术领域取得了一些小小的收获,这其中,有App相关的,也有App领域之外的。接下来,我来谈谈自己的一些实践和心得体会。 1)《Android插件化开发指南》的英…

java 屏蔽地域性访问_外贸网站屏蔽中国IP访问的多种方法

大家都知道的原因,做外贸站,国人喜欢研究你的站,还总是帮你进行压力测试…… 首先想到要屏蔽中国IP就会是把中国IP库加入Nginx配置文件中,然后WEB服务器对比IP来达到屏蔽。 在Nginx中加deny IP; 批量可以建立一个ip.conf的文件然后include ip.conf; 其次是通过IPtable要禁止…

php date函数显示星期几,php如何利用date函数获取时间是星期几

php如何设置页面编码 php设置页面编码的方法:在php mvc的控制器里面或php页面输出meta标签,代码为【echo meta http-equivcontent-type contenttext/html; charsetutf-8】。 php设置页面编码的方法: 1、在php mvc的控制器里面或php页面输出me…

部署说明php,PHP部署时的几个配置修改说明

PHP部署时的几个配置修改说明 1、short_open_tag 是什么呢? 决定是否允许使用代码开始标志的缩写形式( ?> )。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 。否则还可以通过php来输出,例如: 。如果禁用了&#x…