故事背景:我们公司是做新零售的,需要对发布的每台机器进行文件的同步更新,所以我这里做了一个小小的调研

技术调研:linux之间同步文件有两种方式rsync与scp。

sync和scp在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。原因是scp是复制:若mas2文件不存在则新建,若存在则覆盖,若mas2上有而Dashboard主机没有,则不改变。可以理解为scp为“复制”。而rsync则在文件在存在于两主机时,比较两文件是够相同,相同的话,就什么都不做,若存在差异就直接更新。

简单的说rsync只对差异文件做更新。

#### Rsync介绍
rsync是一款开源的备份工具,可以再不同主机之间进行同步,实现全量和增量备份,适用于集中备份或异地备份等应用场景。
rsync监听端口:873
rsync运行模式:C/S
#### Rsync传输模式
- 本地模式
本地传输,主机内部进行数据传输(类似于cp命令)
- 远程模式
远程通道传输,通过ssh通道传输数据(类似scp命令)
- 守护进程模式
守护进程传输,不使用系统用户进行传输(安全性高)

#### Rsync命令参数
-a 复制各种类型的文件(相当于-tropgDl)
-v 显示传输过程
-z 传输时进行压缩
-r 递归传输目录和子目录
-t 保持文件时间不变
-o 保持文件属主信息
-g 保持文件属组信息
-p 保持文件权限
-l 保持软连接
-P 显示同步进度及过程
-D 保持设备文件信息
--bwlimit=100 限速传输
--delete 源和目标数据保持一致
--partial 断点续传

#### 安装rsync
`sudo apt-get install`一般机器好像都有
#### 服务端
1. 创建rsyncd.conf配置文件,sudo vim /etc/rsyncd.conf
`uid = ai #运行进程用户
gid = ai #运行用户组
port = 873 #监听端口
fake super = yes #无需rsync以root身份运行,允许接受数据
use chroot = no #禁锢推送数据至某个目录
max connections = 0 #最大连接数
timeout = 600 #超时时间
log file = /var/log/rsyncd.log #定义日志文件路径
#####################################
[backup] #模块名称
path = /backup #定义接收备份数据目录
ignore errors #忽略错误信息
read only = false #对备份数据可读写
list = false #不允许查看模块信息
auth users = test #定义虚拟用户,认证使用
secrets file = /etc/rsync.passwd #认证密码路径`

2. 创建rsync.passwd
`echo "test:123456" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd 不然传输会报错`
3. 启动rsync
`rsync --daemon`

#### 客户端
1. 创建rsync.passwd
`echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password 不然传输会报错`

#### 实例(拉取)
`rsync -avz test@192.168.174.128::backup --password-file=/etc/rsyncd.password /tmp/backup/`

#### 定时拉取
把拉取指令配置在客户端crontab即可

Rsync实现文件的同步的更多相关文章

  1. rsync+inotify-tools文件实时同步

    rsync+inotify-tools文件实时同步案例 全量备份 Linux下Rsync+sersync实现数据实时同步完成. 增量备份 纯粹的使用rsync做单向同步时,rsync的守护进程是运行在 ...

  2. 使用Rsync进行文件的同步与备份

    Rsync是Linux下非常不错的文件同步备份工具,安全性高.备份迅速.支持增量备,功能强大且高效. 服务端配置 Rsync服务的配置文件/etc/rsyncd.conf,示例配置(带用户名密码配置) ...

  3. Rsync+sersync文件实时同步

    一.为什么要用Rsync+sersync架构1.sersync是基于Inotify开发的,类似于Inotify-tools的工具2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改 ...

  4. CentOS利用inotify+rsync实现文件同步

    1.环境部署 inotify-master 10.10.6.208 inotify-slave 10.10.6.149 2.两台服务器都安装rsync yum install -y rsync 3.i ...

  5. Centos 6.5 rsync+inotify 两台服务器文件实时同步

    rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源 ...

  6. sersync + rsync 实现文件的实时同步

    这里有一点要特别注意了,就是在你完成备份之后,先不要把本地的文件都给删除了,先把服务停了之后再删除文件, 因为你已删除,检查到两边不一致,他又会把备份端给删除了.所以特别得注意了.这里吃过一次亏. 还 ...

  7. rsync+inotify 实现服务器之间目录文件实时同步(转)

    软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...

  8. rsync+sersync实现数据文件实时同步

    一.简介 sersync是基于Inotify开发的,类似于Inotify-tools的工具: sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字: ...

  9. 数据文件实时同步(rsync + sersync2)

    因近期项目需求,需要同步云端服务器的数据给**方做大数据分析. 思路: 起初只要数据同步,准备开放数据采集接口.但实时性较差,会有延迟. 故而寻觅各种解决方案,最终确定使用 rsync 进行文件同步, ...

随机推荐

  1. wait notify notifyAll await signal signalAll 的理解及示例

    从常见的一道面试题开始,题目的描述是这样子的: 有三个线程分别打印A.B.C,请用多线程编程实现,在屏幕上循环打印10次ABCABC- 网上大都教了你怎么去实现,其实我也写过一篇 https://bl ...

  2. keychain 的学习

    keychain 的使用    http://www.cnblogs.com/ios8/archive/2012/06/25/iOS-keychain.html

  3. ecosystem.config

    ecosystem.config.js module.exports = { apps : [{ name : 'TOB_NODE', script : 'app.js', // 开发环境变量 env ...

  4. 小M的魔术表演

    Description 小M听说会变魔术的男生最能吸引女生注意啦~所以小M费了九牛二虎之力终于学会了一个魔术:首先在桌面上放N张纸片,每张纸片上都写有一个数字.小M每次请女生给出一个数字x,然后划定任 ...

  5. 【Web技术】314- 前端组件设计原则

    点击上方"前端自习课"关注,学习起来~ 译者:@没有好名字了译文:https://github.com/lightningminers/article/issues/36,http ...

  6. Java中通过代码得到int类型数值的二进制形式

    一.完整代码 public class BigInteger { int sing; byte[] val; public BigInteger(int val){ // 将传递的初始值,按位取值,存 ...

  7. Java编译器API简介

    今天给大家分享的是Java编译器API简介,文章部分内容摘自[优锐课]学习笔记. Java编译器API Java编译器API是Java模块(称为java.compiler)的一部分.该模块包括语言模型 ...

  8. 服务网格数据平面的关键:层层剖析Envoy配置

    Envoy是一种高性能C++分布式代理,专为单个服务和应用程序设计.作为Service Mesh中的重要组件,充分理解其配置就显得尤为重要.本文列出了使用Envoy而不用其他代理的原因.并给出了Env ...

  9. linus 命令

    系统信息 arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) h ...

  10. 多线程之美5一 AbstractQueuedSynchronizer源码分析<一>

    AQS的源码分析 目录结构 1.什么是CAS ? 2.同步器类结构 3.CLH同步队列 4.AQS中静态内部类Node 5.方法分析 ​ 5.1.acquire(int arg ) ​ 5.2.rel ...