【rsync 数据同步工具】

看完需要总结以下3个问题

1,rsync有几种模式?

2,rsync的socket模式的监听端口号?

3,rsync的限速参数?

rsync  叫做数据同步工具。通常我们用来让数据两头进行同步(须先yum安装)

rsync的第一种模式:本地之间的数据同步(也就是基本模式,增量同步)

一、语法一:rsync 参数 源路径 目标路径 增量同步

参数:-v,--verbose 详细模式输出,传输时的进度等信息

-z,--compress 传输时进行压缩以提高传输效率

-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性

(注意:源路径后不加/   指把整个路径同步到目标路径,

源路径后加/     指把源路径下的所有内容同步到目标路径

目标路径后,加不加/没区别)

既然说到同步。我们的复制命令cp 也可以同步

我们把一个目录内容复制过去。两头自然就一样了

cp是全量同步,即复制过去后二头内容完全一样(目标路径没东西就复制过去,有东西就强行覆盖,无论怎样二边内容都一样)

rsync是增量同步,同步之前先会进行文件比对:如果我有的你也有我就不复制了;我有的你没有,我才复制给你---把我有而你没有的同步给你,但你有我没有的我不管

例如:路径qqq下有名为1..10的10个文件,www下有名为1..5的5个文件,要求同步www下6..10到www下

正确写法:rsync -avz qqq/ www/  把qqq下内容同步到www

错误写法:rsync -avz qqq www/   把文件夹qqq复制到www下

另外,rsync还可以进行完全增量同步:我有的你也有,我就不复制了;我有的你没有,我才复制给你;但是,你有的我没有,我也不让你有,直接帮你删了。

语法:rsync 参数 源路径/ 目标路径/ –delete  即使二个路径下内容完全一样

例如:路径qqq下有名为1..10的10个文件,www下有名为5..15的10个文件,要求进行完全增量同步:

实操:rsync -avz qqq/ www/ --delete  分别ls后发现二个路径下完全你一样

二、第二种模式:远程同步 需要三步

语法一(增量模式):rsync -avz /源账户路径/ 目标账户名@目标ip:/目标账户路径把我有而你没有的同步给你,但你有我没有的我不管

注意:源账户路径 和 目标账户路径 均需已安装rsync

源路径后不加/   指把整个路径同步到目标路径

源路径后/     指把源路径下的所有内容同步到目标路径

ip后边有个:

步骤:①rsync -avz /backup/ root@192.168.71.132:/backup/

②输入yes确认   (第一次同步需要输入yes确认,以后就不用了)

③输入对方机器的rooot超户登录密码   

意义:将backup目录下所有内容同步到root超户进行登录192.168.71.132这台机器的back目录下     ls

语法二(完全增量模式):把我有而你没有的同步给你;但同时也把你有我没有的给你删了,这下咱俩里边内容完全一样了

rsync -avz /backup/ root@192.168.71.132:/backup/ --delete

三、第三种模式:socket监听模式 (服务器模式)

服务部署:用rsync做一个程序,监听873服务端口,其他客户端把数据推进服务端口,rsync会自动保存。(客户端可以有多个,不用指定哪个目录,推进端口就行)

server服务端执行以下指令:

vim /etc/rsyncd.conf  写rsync的配置文件,原本没有,需要自己写

uid = rsync              可用此服务的账号是rsync

gid = rsync              组账号是rsync

use chroot = no          安全设置:不可以更改root权限

max connections = 200   最大支持连接200个客户端

timeout = 300               连接超时时间300秒

pid file = /var/run/rsyncd.pid     pid文件保存位置

lock file = /var/run/rsync.lock    文件锁

log file = /var/log/rsyncd.log        日志保存位置 

#############################以上是全局生效参数,以下是模块参数

[backup]           模块名称

path= /backup/    将模块的存储路径设为/backup

ignore errors     忽略出现的错误错误

read only = false  关闭只读,即可以读写

list = false       关闭客户端查看服务端的权限,即禁止客户端查看服务端

hosts allow=192.168.71.0/24  允许推送到服务端的客户端的网段范围

hosts deny = 0.0.0.0/32       掩码32,即4个255,不拒绝任何ip地址

auth users =rsync_backup  建立虚拟账号rsync_backup推数据时须身份验证

secrets file = /etc/rsync.password   存放密码文件的位置   保存退出

(需要在此路径下创建1个文件,用于存放虚拟账户rsync_backup的密码)

useradd -M -s /sbin/nologin rsync   创建程序用户rsync

mkdir /backup   创建指定存放目录,ll -d /backup已存在则正确

vim /etc/rsync.password    创建存放密码的文件rsync.password

rsync_backup:123456     以 账户名:密码 的格式保存密码  保存退出

chmod 600 /etc/rsync.password 必须把密码文件权限设为600,高了执行不了,且因有密码禁止其他用户查看

ll /etc/rsync.password  查看密码文件权限是否修改成功

ll -d /backup 数据存储目录的属主和属组都是root即权限为755;而rsync是程序用户权限,客户端将数据推进端口后,服务端rsync会收到数据然后写入/backup中,意味着rsync程序应具备写权限而现在写不了,因此要修改/backup目录的属主

chown rsync /backup  将/backup目录的属主更改为rsync,rsyc才能把传入的数据写进此目录

rsync -–daemon 启动(ps -ef | grep -v grep | grep rsync查是否运行)

netstat -antup | grep 873   rsync默认监听873端口

cd /backup   转到服务端根下的backup目录

rm -rf *     清空数据目录       此时服务端已配完

在客户端执行以下指令:

cd /backup/  转到客户端根下的backup目录

touch {1..10}  创建10个文件

3.1、rsync -avz /backup/ rsync_backup@192.168.71.131::backup

123456  输入之前配置好的虚拟账户rsync_backup的密码123456  显示同步成功(此模式rsync将客户端/backup下的数据推进到192.168.71.131服务器的873端口的/backup模块下,再由这个模块转到指定目录下

提示:(排错:rsync -avz /backup/ rsync_backup@192.168.71.131::backup同步失败,显示找不到路由器,即网不通;猜测是没关防火墙的问题,随即

service iptables stop 关闭防火墙,再service iptables status发现未运行

再执行rsync -avz /backup/ rsync_backup@192.168.71.131::backup显示让输入服务端密码,则排错成功;建议将服务端和客户端的防火墙都关掉,如下图示)

3.2、免密码同步,(免密同步即可方便将rsync功能写入脚本)

vim /etc/rsync.password 要想免密码,在客户端/backup下也需要创建密码文件

123456  密码文件内只需要写密码就行,此处密码应和服务端创建的虚拟账户密码一致

chmod 600 /etc/rsync.password 将密码文件权限设为600  可用ll验证

rsync -avz /backup/ rsync_backup@192.168.71.131::backup --password-file=/etc/rsync.password   免密码同步   标绿的指定密码参数

3.3、免密码完全增量同步:既要免密码,又要完全增量(使二台机器内容完全同步)

rsync -avz /backup/ rsync_backup@192.168.71.131::backup --password-file=/etc/rsync.password --delete

注意:操作时一定要细心:

1建议将虚拟机服务端和客户端的防火墙都关掉,避免连接失败

2避免写错内容导致执行失败

3、在工作中做服务部署时,虽然指令不需要背,但是绝对不能简单照抄,必须知道:

每一步是做什么的为什么要这么做是否有错误步骤这句话是干什么的是不是必须有的(没有行不行)

因为,部署过程虽然要参考文档,但有的企业有文档但步骤和内容不一定准确,有些企业干脆没文档。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值