RSYNC

概述

什么是RSYNC

rsync的好姐妹

sync同步:刷新文件缓存,强制将修改过的数据块写入磁盘,并且更新超级快。

async异步:将数据先放到缓存区,在周期性(一般是30s)的去同步到磁盘

rsync远程同步:remote synchronous

数据同步过程

sync数据同步=>保存文件(目标)=》强制把缓存中的数据写入磁盘

asyn数据异步=》保存文件(目标)=》将数据先放到缓冲区,在周期性(一般是30s)的同步到磁盘,适合大批量数据同步的场景)

rsync特点

可以镜像保存整个目录树和文件系统

可以保留原有的权限

传输效率高,使用同步算法,只比较变化的(增量备份)

支持匿名传输,方便网站镜像,也可以做验证,加强安全

rsync与scp的区别

两者都可以实现远程同步,,但是相对比而言,rsync能力更强

1.支持增量备份

2.数据同步时保持文件的原有属性

RSYNC基本语法

man rsync

NAME

rsync -a fast,versatile,remote(and local ) file-copying tool

//一种快速、通用、远程、和本地的文件复制工具

本地文件同步

local:rsync [option...] SRC... [DEST]

远程文件同步

Access via renote shell

pull: rsync [option..] [user@] HOST:SRC... [DEST]

push: rsync [OPTION...] SRC... [USER@]HOST:DEST

option选项说明

-v 详细模式输出

-a归档模式,递归的方式传输文件,并保存文件的属性,equals -rlptgoD

-r 递归拷贝目录

-l 保留软链接

-p 保留原有权限

-t 保留原有时间(修改)

-g 保留属组权限

-o 保留属主权限

-D 等于--devices --specials 表示支持b,c,s,p类型的文件

-R 保留相对路径

-H 保留硬链接

-A 保留ACL策略

-e 指定要执行的远程shell命令

-E 保留可执行权限

-X 保留扩展属性信息 a属性

PUSH :推,相当于上传;PULL:拉,相当于下载

本地文件同步

本地文件同步:简单理解就是从一个位置(同步=>拷贝)拷贝到另外一个位置(类似cp)

案例:/dir1与dir2,dir1中创建了三个文件file1,file2,file3,使用rsync本地同步

mkdir /dir1

mkdir /dir2

touch /dir1/file{1..3}

rsync -av /dir1/ /dir2 =>把/dir1目录中的所有文件拷贝到dir2目录

rsync -av /dir1 /dir3 =>把/dir1目录整体同步到/dir3目录中

案例:rsync -R选项的应用(保留相对路径)

rsync -avR /dir1/ /dir2

案例:rsync --deleat(删除目标目录里多余的文件)

/dir1 === /dir2

file1、file2 file1、file2、file3

rsync --delete同步后,会自动删除file3文件(让dir1和dir2高度同步)

rsync远程文件同步

rsync -av 本地文件或目录 远程服务器用户名@远程服务器ip 目标路径

案例

把linux.txt文档传输到远程服务器端

rsync -av linux.txt root@服务器ip:/root/

下载文件到本地服务器端

rsync -av 远程用户名@远程服务器ip:目标文件

案例:把远程服务器的/etc/hosts文件下载到本地

rsync -av root@远程服务器ip:/etc/hosts .

如何不需要输密码就可以直接同步

ssh-keygen -t rsa -p

ssh-copy-id root@远程ip

即可实现免密的文件传输

SSH更改端口的文件同步

vim /etc/ssh/sshd_config

找到port:改一下端口

port:10086

重启一下

systemctl restart sshd

然后试一下

rsync -e "ssh" -p 10086 -av rsync.txt root@远程服务器Ip

rsync作为系统服务

默认情况下,rsync只是作为一个命令来进行使用的

思路

对外提供服务-->端口监听--->启动服务---->启动脚本(没有)---->配置文件(修改需求)

第一步

启动rsyncd服务

systemctl start rsyncd

有的版本没有

先创建一个

touch /etc/rsyncd.conf

在启动

rsync --daemon

ps -ef | grep rsync

rsyncd服务的配置文件/etc/rsyncd.conf

man 5 rsyncd.conf

rsync托管xinetd

为什么要进行服务托管

独立服务:独立启动脚本:ssh ftp nfs dns...

依赖服务;没有独立的启动脚本rsync telnet 依赖xinetd服务(独立服务)

如何将rsync托管给xinetd服务管理?

第一步:在系统中安装xinetd服务

yum -y install xinetd

rpm -ql xinetd

rpm -qa rsrync

第二步 编写xinetd.conf文件(/etc/xinetd.conf)

man 5 xinted.conf

文件内容

only_from 只允许访问

rc_access 拒绝访问

access_times 控制访问服务的时间段

log_type 日志类型

interface 并发连接数

per_source 每个ip 的最大连接数

/ertc/xinetd.d文件 包含子配置目录(增加rsync、telnet)

第三步:手工创建 /etc/xinetd.d

vim /etc/xinetd.d/rstnc

service rsync

{

disable = no //开头,no表示开启该服务,yes表示关闭该服务

flags = IPV6

socket_type=stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure = USERID

}

这样服务就托管结束了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值