Rsync实现文件的同步
故事背景:我们公司是做新零售的,需要对发布的每台机器进行文件的同步更新,所以我这里做了一个小小的调研
技术调研: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实现文件的同步的更多相关文章
- rsync+inotify-tools文件实时同步
rsync+inotify-tools文件实时同步案例 全量备份 Linux下Rsync+sersync实现数据实时同步完成. 增量备份 纯粹的使用rsync做单向同步时,rsync的守护进程是运行在 ...
- 使用Rsync进行文件的同步与备份
Rsync是Linux下非常不错的文件同步备份工具,安全性高.备份迅速.支持增量备,功能强大且高效. 服务端配置 Rsync服务的配置文件/etc/rsyncd.conf,示例配置(带用户名密码配置) ...
- Rsync+sersync文件实时同步
一.为什么要用Rsync+sersync架构1.sersync是基于Inotify开发的,类似于Inotify-tools的工具2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改 ...
- CentOS利用inotify+rsync实现文件同步
1.环境部署 inotify-master 10.10.6.208 inotify-slave 10.10.6.149 2.两台服务器都安装rsync yum install -y rsync 3.i ...
- Centos 6.5 rsync+inotify 两台服务器文件实时同步
rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源 ...
- sersync + rsync 实现文件的实时同步
这里有一点要特别注意了,就是在你完成备份之后,先不要把本地的文件都给删除了,先把服务停了之后再删除文件, 因为你已删除,检查到两边不一致,他又会把备份端给删除了.所以特别得注意了.这里吃过一次亏. 还 ...
- rsync+inotify 实现服务器之间目录文件实时同步(转)
软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...
- rsync+sersync实现数据文件实时同步
一.简介 sersync是基于Inotify开发的,类似于Inotify-tools的工具: sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字: ...
- 数据文件实时同步(rsync + sersync2)
因近期项目需求,需要同步云端服务器的数据给**方做大数据分析. 思路: 起初只要数据同步,准备开放数据采集接口.但实时性较差,会有延迟. 故而寻觅各种解决方案,最终确定使用 rsync 进行文件同步, ...
随机推荐
- iOS开发笔试面试- KVC/KVO简单使用
转自:http://my.oschina.net/caijunrong/blog/510701 一.对于KVC模式(Key Value Coding): 1.其实在实际开发中用得比较多得就是:接收到j ...
- 结构体与typedef的使用,还有结构体指针的使用(二层结构体指针)
该类容摘抄自以下链接,为学习之后的记录,不是鄙人原创. 学习链接:https://blog.csdn.net/a2013126370/article/details/78230890 typedef ...
- 最小生成树唯一性判断-UESTC1959天才钱vs学霸周
天才钱vs学霸周 Time Limit: 1000 MS Memory Limit: 256 MB Submit Status 有一天,天才钱和学霸周闲的无聊玩起了游戏,游戏内容是这样的,现在 ...
- CodeForces985G Team Players
G. Team Players time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- asp.net core 配置微信返回信息接口
这玩意弄了两天 微信的API需要升级了 只有一份PHP的DEMO 还有个坑 返回值一定要是 微信传入的echostr 否则 出现配置失败,这个问题耗了我俩小时 最后还是在论坛看到的解决方案. 项目必须 ...
- Day 06 作业
目录 Python基础实战之猜数字游戏 Python进阶实战之三级菜单 Python基础实战之猜数字游戏 给定数字,用户可以猜三次年龄 数字猜对,让用户选择两次奖励 用户选择奖励后可以退出 impor ...
- Day 06 流程控制和爬虫基础2
目录 if 判断 单分支结构 双分支结构 多分支结构 for循环 for循环的基本用法 for循环嵌套 break continue 爬虫基础2 爬取豆瓣TOP250 爬取豆瓣数据接口(异步数据) 爬 ...
- 【搞定Jvm面试】 JVM 垃圾回收揭秘附常见面试题解析
JVM 垃圾回收 写在前面 本节常见面试题 问题答案在文中都有提到 如何判断对象是否死亡(两种方法). 简单的介绍一下强引用.软引用.弱引用.虚引用(虚引用与软引用和弱引用的区别.使用软引用能带来的好 ...
- Caffe源码-Net类(下)
net.cpp部分源码 // 接着上一篇博客的介绍,此部分为Net类中前向反向计算函数,以及一些与HDF5文件或proto文件相互转换的函数. template <typename Dtype& ...
- Day01-基础数据类型/用户交互/流程控制之-if
1.基础数据类型 什么是数据类型 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘ ...