RSYNC 同步工具
Rsync 数据同步工具
一、Rsync简介
1.检测一下你的机器上是否已经安装 --->可以通过yum安装 或者 源码
Server 192.168.201.151
Client 192.168.201.152
yum -y install rsync
2.Rsync 介绍
2.1 什么是Rsync
是一款开源(免费 源代码完全公开)、快速、多功能的,可以实现全量和增量的本地或者远程的数据同步的工具
全量:全部(后期修改--->也会把没有改变的地方再次进行cp mv等)
增量:只是对修改的内容、新增加的内容进行cp mv等
适用于Unix/Linux/Windows等OS
3.Rsync简介
Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。
小提示:利用rsync 还可以实现删除文件目录的功能 不仅相当于cp/scp命令 还相当于rm命令
默认情况下 rsync使用自己独特算法“quick check” 仅同步大小或者最后修改时间发生变化的文件或者目录 也可以根据目录文件的权限(属组 属主等) 需要制定参数
4.Rsync的特性
a)支持拷贝特殊文件 (链接文件)、设备等
b)相当于打包命令 指定内容进行同步(排除)
c)可以做到保持原文件 或者目录的权限 时间 软硬链接 属主 属组等特性(硬链接 绝对不能对目录进行创建 本身就是复制产物 软链接--->快捷方式)
d)可以实现增量同步 效率高
e)可以使用rcp rsh ssh等方式来配合文件传输(rsync本身对文件数据 不加密)
f)可以通过socket的方式进行文件传输(服务器+客户端)
daemon进程 守护进程--->从开机-关机 不停的提供服务 保证服务的正常
什么是socket???--->套接字?
每个服务 启动后 监听一个端口号? Ssh --22 mysql--3306
UDP TCP 传输
TCP---一对一的链接 每一个链接都是一个socket
UDP---一对多 所有人在一个socket里
g)支持匿名的或者认证方式进行远程传输
5.应用场景--同步
a) 两台服务器之间进行数据同步 --->crond+rsync 计划任务+备份数据
针对某个公司重要数据备份 混乱状态 和 领导提出备份全网数据的解决方案
通过本地打包备份--tar 然后结合rsync结合inotify应用 把全网数据统一备份到一个固定的存储服务器 存储服务器利用脚本 定时检查并且报告给管理员
定时将IDC数据备份到其他的地方(云端 内部) 防止机房 地震 火灾--->容灾
b)实时同步 (解决存储服务器的单点问题)
利用rsync+inotify 做实时同步
还可以通过DRBD的方案 实现双机
Rsync sersync inotify DRBD
选择B方案进行备份--->后期检查---> 只有检查办公室服务器 就能确保备份和主服务器数据都是好的
选择2号方案 跨机房--->带宽问题 底下更迅速
二、Rsync的工作方式
从实际工作角度进行划分
Rsync分成三种数据传输模式:
1)单个主机本地之间的数据传输 类似cp命令
2)借助ssh等通讯信道进行传输 类似scp命令
3)以守护进程socket的方式传输数据 rsync自身的重要功能
1、本地数据传输方式(local-only mode)
语法结构: rsync [OPTION...] SRC... [DEST]
cp -a test.txt test2.xt
例一:把系统的hosts文件同步到/opt命令下
例二:把opt目录拷贝到/mnt2下
相当于 cp -ap /opt /mnt2
---->-avz = -ap(a-保持文件原有属性进行复制 p-不要链接文件)
相当于rm命令
rsync -avz --delete /lol/ /opt/
由上可以看出当后者/opt/中的文件在前者/lol/中没有,则在同步的时候会被删除
三、借助ssh通道在不同的主机上进行数据传输
实例1: 推送,将当前主机内容推送到远程主机
-e ‘ssh -p 22’ 表示以ssh的方式通过22端口进行推送 如果不写默认是22端口
企业中 web apache nginx-->使用docker虚拟化--->每一个镜像映射---> 22--->200-299端口
实例2:将远程主机内容拉取到本地
参数:
-avz 相当于-vzrtopgDI 表示同步时文件和目录属性不变
-P 显示同步的过程 可以用--progress代替
注意:文件目录后面需要添加/
四、Rsync 命令常用的参数选项
-v, --verbose 详细模式输出 传输时的进度等信息
-z, --compress 传输时进行压缩 来提高传输效率 --compress-level =NUM 可以指定级别压缩
-a,--archive 归档模式 表示以递归的方式进行文件传输 并且保持文件/目录的属性 等于 -rtopgDl
-r,--recursive对子目录以递 归模式,即目录下的所有目录都同样传输,注意是小写r |
-t,--times |
保持文件时间信息 |
-o,--owner |
保持文件属主信息 |
-p,--perms |
保持文件权限 |
-g,--group |
保持文件属组信息 |
-P,--progress |
显示同步的过程及传输时的进度等信息 |
-D,--devices |
保持设备文件信息 |
-l,--links |
保留软链接 |
-e,--rsh=COMMAND |
使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样) |
--bwlimit=RATE |
limit socket I/O bandwidth |
--delete |
让源目录SRC和目标目录数据DST一致 |
五、以守护进程(socket)方式 传输数据
部署环境
Server 192.168.201.151 node1.thinkmo.cn
Client 192.168.201.152 node2.thinkmo.cn
A-server(服务器端)上以rsync守护进程的方式部署rsync服务,使得所有的rsync节点客户端主机 可以把本地数据通过rsync的方式备份到A上 B、C都是客户端
1)部署rsync的服务器(A端)
a)配置rsync的文件---->需要自己写的! 名称必须是“rsyncd.conf”
#rsync_config_____start
#created by thinkmo 13:40 2017-3-6
##rsyncd.conf start##
# 用户
uid = rsync
# 组
gid = rsync
# 程序安全设置
use chroot = no
# 客户端连接数
max connections = 200
# 超时时间
timeout = 300
# 进程号文件位置
pid file = /var/run/rsyncd.pid
# 进程锁
lock file = /var/run/rsync.lock
# 日志文件位置
log file = /var/log/rsyncd.log
##########################################
[backup]
# 使用目录
path = /backup/
# 有错误时忽略
ignore errors
# 可读可写(true或false)
read only = false
# 阻止远程列表(不让通过远程方式看服务端有啥)
list=false
# 允许IP
hosts allow = 192.168.197.0/24
# 禁止IP
hosts deny = 0.0.0.0/32
# 虚拟用户
auth users = rsync_backup
# 存放用户和密码的文件
secrets file = /etc/rsync.password
##rsync_config______end##
b)创建共享目录 添加 rsync用户
c)启动rsync为socket守护进程
d)把共享文件夹的权限 设置
e)创建rsync的虚拟用户+密码并把rsync.password文件权限设置为600 ---> 如果不是 daemon无效
g) 把rsync写入到启动项
2)部署B-Client
只需要创建密码文件(密码文件可以和server不同 只要里面的密码相同!!!)并且设置文件权限为600
3)测试
Client端拉取命名:
a)输入密码
无需输入密码
Client端推送命名:
RSYNC 同步工具的更多相关文章
- rsync同步工具学习笔记
rsync同步工具 1.rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows等多种操作 ...
- linux rsync同步工具
linux rsync同步工具 1.rsync介绍rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows ...
- 日常运维--rsync同步工具
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而 ...
- rsync同步工具的配置与使用
一.什么是rsync?rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具. rsync官网 http://rsync.samba.org/ 二.rsync的工 ...
- Linux之rsync同步工具介绍+inotify同步
1.rsync介绍 Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作平台. rsync, ...
- 二十七、rsync同步工具
1.什么是rsync? Rsync是一款开源的.快速的,多功能的,可实现全量及增量的本地或者远程数据同步备份的优秀工具.windows和linux都可以. 官网:http:www.samba.org/ ...
- Rsync同步工具
1.Rsync介绍 1.1 什么是Rsync? Rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接 ...
- Rsync同步工具安装文档
(1)下载Rsync源代码进行安装 (2)1' cd rsync 2' ./configure --prefix=/usr/local/rsync 3' make 4' make ...
- 利用Rsync同步工具上传、删除目标文件
Rsync是文件备份工具,当然也可以当做传输工具,管理远程服务器的文件 上传 rsync -avzP --progress --port 9106 /path/.../指定文件 root@192.16 ...
随机推荐
- Java面试思路
一.javaSE基础 1.java IO流 2.java NIO 3.java集合 4.java注解 5.java泛型 6.java反射 7.java多线程 8.常用String.数组.日期操作 二. ...
- 机器学习- Numpy基础 吐血整理
Numpy是专门为数据科学或者数据处理相关的需求设计的一个高效的组件.听起来是不是挺绕口的,其实简单来说就2个方面,一是Numpy是专门处理数据的,二是Numpy在处理数据方面很牛逼(肯定比Pytho ...
- Kafka 集群在马蜂窝大数据平台的优化与应用扩展
马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐.低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数 ...
- JDK1.8的HashMap实现原理和源码解析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构.许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中的对应实现HashMap的 ...
- 【Python3爬虫】反反爬之解决前端反调试问题
一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,也就没法运行代码了,直接中断掉了,难道这就能阻止 ...
- 洛谷P5664 Emiya 家今天的饭 题解 动态规划
首先来看一道题题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共有 ...
- 1038 统计同成绩学生 (20 分)C语言
题目描述 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入描述: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1 ...
- shell正则表达式和cut命令
正则表达式 符号 描述 $ 匹配输入字符串的结尾位置 () 标记一个子表达式的开始和结束位置 * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 . 匹配除换行符(\n)之外的任何单字 ...
- Intellij IDEA2019.1.3破解
下载 JetbrainsCrack.jar(链接:https://pan.baidu.com/s/1Dkw1PruzBlEMjcYszNlSZA 提取码:2bf7),放到bin目录下(其实位置可以随便 ...
- 移动web 1像素边框
实现方法 border-image 图片 实现 这篇文章是腾讯github上的解决方案border-image来实现的 链接走起 <使用border-image实现类似iOS7的1px底边> ...