rsync配置和守护进程实践

目录

一、rsync概念

1.rsync简介

2.rsync特点

3、增量和全局传输

二、Rsync工作方式

1.准备好rsync备份服务器

2.本地的数据传输模式

3.远程的数据传输模式

4.rsync数据推拉模式

三、实践

1.准备三台虚拟机

2.都安装rsync服务

3.拉取远程文件

3.推送文件

4.rsync守护模式传输

四.rsync守护进程部署

1.确保安装了rsync服务

2.修改服务端配置文件

4.在rsync服务端做好环境配置工作

5.启动rsync服务开机自启

6.客户端配置

8.rsync大文件断点续传


一、rsync概念

1.rsync简介

全局数据备份,以及增量数据备份本地,远程的数据同步,一款优秀的工具

rsync可以类似于cp一样,实现本地数据拷贝

也能像scp一样进行远程的数据拷贝

还支持守护进程方式数据拷贝

delta-transfer算法,实现增量复制

scp远程数据传输,只能是实现全量数据传输

2.rsync特点

  • 可以实现cp效果,本地数据备份
  • 实现远程数据同步复制,如scp效果
  • 如rm效果可以删除本地文件
  • 也可以实现远程的数据查看,例如远程的ssh+ls的命令执行

软件特性

  • rsync支持普通文件拷贝,支持特殊文件拷贝,link,c设备文件
  • 还支持文件排他,可以指定不拷贝那些文件
  • 还能实现数据拷贝后,属性不发生变化(start命令查看)
  • 特点~支持增量数据拷贝
  • rsync可以配合ssh实现安全的数据传输,rsync本身不支持数据加密
  • rsnc支持匿名用户传输

3、增量和全局传输

rsync在数据备份的时候,通过quick check算法,检测数据,容量,最后修改时间变化

rsync甚至可以复制单个文件的内容传输

增量传输的原理就是,一边对比差异,一边对比差异进行数据复制,centos7上的3.x版本,效率更高


二、Rsync工作方式

1.准备好rsync备份服务器

安装rsync工具

yum install -y rsync

2.本地的数据传输模式

类似于cp,ls,touch命令的增删改查,实现数据的增量备份

语法模式

备份hosts文件

rsync /etc/hosts /tmp/

差异化同步

file目录和tmp目录差异化同步

[root@localhost /]# mkdir /file/{11,22,33}
[root@localhost /]# ls -l file
total 0
drwxr-xr-x. 2 root root 6 Nov 12 08:12 11
drwxr-xr-x. 2 root root 6 Nov 12 08:12 22
drwxr-xr-x. 2 root root 6 Nov 12 08:12 33
[root@localhost /]# ls -l /tmp/
total 0
[root@localhost /]# rsync -r --delete /file/ /tmp/
[root@localhost /]# ls -l /tmp/
total 0
drwxr-xr-x. 2 root root 6 Nov 12 08:12 11
drwxr-xr-x. 2 root root 6 Nov 12 08:12 22
drwxr-xr-x. 2 root root 6 Nov 12 08:12 33

文件差异化同步

[root@localhost /]# echo "111111111122222222222222" > /file/1.txt
[root@localhost /]# cat /file/1.txt 
111111111122222222222222
[root@localhost /]# touch /tmp/null
[root@localhost /]# cat /tmp/null 
[root@localhost /]# rsync -r --delete /tmp/null file/1.txt 
[root@localhost /]# cat /file/1.txt 

3.远程的数据传输模式

借助于ssh服务在两台机器之间进行数据传输,此时已经没有客户端和服务端之分,而是一种相对关系。

4.rsync数据推拉模式

远程的数据传输模式,有两种情况,推送和拉取

拉取:把远程服务器的数据,拉取到本地来

推送:把本地的数据,推送,上传发送远程的服务器


三、实践

1.准备三台虚拟机

第一台

第二台

第三台

2.都安装rsync服务

yum install rsync -y

3.拉取远程文件

我们在192.168.0.103服务器上创建一个文件

echo "yuancheng rsync" > /tmp/yuanc.txt

拉取文件,然后检查

rsync -av -e 'ssh -p 22' root@192.168.0.103:/tmp/yuanc.txt /tmp/
cat /tmp/yuanc.txt 

3.推送文件

rsync -av -e 'ssh -p 22'  /tmp/yuanc.txt root@192.168.0.107:/tmp/

4.rsync守护模式传输

守护模式传输是在客户端与服务端之间的数据复制

服务端需要配置好守护进程,等待客户端远程的执行数据同步命令,然后实现数据的拉取和推送


四.rsync守护进程部署

1.确保安装了rsync服务

yum install rsync -y 

2.修改服务端配置文件

vim /etc/rsyncd.conf

输入

 uid = rsyncgid = rsyncfake super = yesuse chroot = nomax connections = 200pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.lockiignore errorsread only = falselist = falsehosts allow = 192.168.0.0/24hosts deny = 0.0.0.0/32auth users = rsync_backupsecrets file = /etc/rsync.password[backup]comment = This is rsync backup!path = /backup/[myweb]path=/my_web/

3.创建用户

useradd rsync -s /sbin/nologin -M
id rsync

4.在rsync服务端做好环境配置工作

mkdir -p /backup
chown -R rsync.rsync /backup
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password

5.启动rsync服务开机自启

systemctl restart rsyncd
systemctl enable rsyncd

netstat -tunlp|grep rsync

6.客户端配置

yum install rsync -y
echo "123456" > /etc/rsync.password 
chmod 600 /etc/rsync.password 
export RSYNC_PASSWORD=123456
echo "export RSYNC_PASSWORD=123456" >> /etc/profile

7.测试

客户端推送数据

rsync -avzP /my_rsync rsync_backup@192.168.0.107::backup --password-file=/etc/rsync.password

服务端

客户端拉取数据

服务端创建文件

touch /backup/{11,22,33,44,55,66,77}
ls /backup/

客户端

 rsync -avzP  rsync_backup@192.168.0.107::backup --password-file=/etc/rsync.password /my_rsync/

exclude排除文件

服务端准备

touch /backup/{11,22,33,44,55,66,77}
mkdir /backup/{a,b,c,d,e,f}
touch /backup/a/11
touch /backup/b/22
touch /backup/c/33
touch /backup/d/44

客户端

rsync --exclude=11 --exclude=d/44 -avzP rsync_backup@192.168.0.107::backup --password-file=/etc/rsync.password /my_rsync/

8.rsync大文件断点续传

rsync提供了如下的参数

  • partial

默认情况下rsync传输中断后,将会删除所有传输了一部分的文件,重新传输在某些情况下,用户可能会希望保留已经传输的内容,该参数,告知rsync保留已经传输好的内容,使得剩余部分,可以继传输

  • partial-dir=DIR

保留已经传输的部分文件,且将内容保存到一个目录中,而不是立即写入到目标文件,便于下次传输的时候,rsync使用该目录中的数据,再进行整体数据的传输和恢复,结束后删除该目录

if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

实例

服务端

 dd if=/dev/zero of=/backup/file bs=10M count=128

客户端

rsync -avzP --partial-dir=/tmp//my_rsync/test1 rsync_backup@192.168.0.107::backup  --password-file=/etc/rsync.password /my_rsync/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/206925.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习实战第1天:鸢尾花分类任务

专栏介绍 欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅 本专栏项目将着重于解决各类实际机器学习问题&#xff0c;带你上手各种场景的实际问题 数据集可以在我的资源中找到&#xff0c;也可以自行搜索 文中导入数据集的路径要改成自己的…

Vue2系列 — 渲染函数 (render + createElement)

官网文档&#xff1a;https://v2.cn.vuejs.org/v2/guide/render-function.html 1 render 函数 render 函数 不使用模板&#xff0c;使用 js 生成虚拟 dom 2 createElement() 接受的参数&#xff1a; 参数1 节点类型参数2 attribute参数3 子节点 3 DEMO <template>&…

采用connector-c++ 8.0操作数据库

1.下载最新的Connector https://dev.mysql.com/downloads/connector/cpp/&#xff0c;下载带debug的库。 解压缩到本地&#xff0c;本次使用的是带debug模式的connector库&#xff1a; 注&#xff1a;其中mysqlcppconn与mysqlcppconn8的区别是&#xff1a; 2.在cmakelist…

并发编程:共享模型之管程

目录 管程 临界区 竞态条件 案例 通过synchronized阻塞解决 synchronized添加位置 设计模式之保护性暂停 Join原理 修改线程状态的几种方法 单向改变不可返回的状态 双向可改变的状态 多把锁 线程活跃性 死锁 定位死锁 活锁 饥饿 ReentrantLock 可重入 可打…

安卓隐私指示器学习笔记

最近了解到Google 在Android12上新增了权限指示器&#xff0c;可以在信号栏的右侧显示当前访问录音机和Camera的应用&#xff0c;点击后可以跳转到相应应用的权限界面&#xff0c;消费者可以控制权限的开启和关闭。国内手机厂商最近几年都在增加隐私看板供能&#xff0c;消费者…

【endnote】如何将参考文献放到想放的位置

1. 方式 直接将生成的文献全选拖到想放的位置 注意&#xff1a;不要使用ctrlx这种操作。 2.具体操作 2.1 新建测试文档 如下图&#xff1a; 2.2 引用两篇文献】 如下图&#xff1a; 2.3 测试 如下图&#xff0c;选中所有已经引用的文献。 拖拽到想要防止的位置。 新…

详解Python中哈希表的使用。站在开发者角度,与大家一起探究哈希的世界。

文章目录 1. 前言2. 哈希表2.1 哈希函数2.2 哈希算法2.3 常见哈希算法2.4 哈希冲突 3.总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面…

ELF header

1. ELF header定义 ELF header的定义可以在 /usr/include/elf.h 中找到。Elf32_Ehdr是32位 ELF header的结构体。Elf64_Ehdr是64位ELF header的结构体。 所以&#xff0c;ELF header在ELF文件中的大小与位置是确定的&#xff0c;位置位于文件头部&#xff0c;大小则是Elf_Ehdr…

​极氪,中国传统汽车品牌电动化的样板间

这篇文章早就想写了&#xff0c;因为太忙的原因就一直跳票&#xff0c;正好最近两件事的出现&#xff0c;又触发了想写这篇文章的冲动。 两件事主要是&#xff1a; 一&#xff0c;10 月份各家陆续公布了单月销量以及累计销量&#xff1b; 二&#xff0c;极氪在北京正式发布了 …

jmeter中调用python代码

1、安装pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 2、将py脚本打包 pyinstaller -F venv/get_image/OCR_jmeter_api.py 3、jmeter中添加OS Process Sampler并调用dist下的程序 4、执行jmeter

【高级网络程序设计】Week2-1 Sockets

一、The Basics 1. Sockets 定义An abstraction of a network interface应用 use the Socket API to create connections to remote computers send data(bytes) receive data(bytes) 2. Java network programming the java network libraryimport java.net.*;similar to…

网络安全之渗透测试入门准备

渗透测试入门所需知识 操作系统基础&#xff1a;Windows&#xff0c;Linux 网络基础&#xff1a;基础协议与简单原理 编程语言&#xff1a;PHP&#xff0c;python web安全基础 渗透测试入门 渗透测试学习&#xff1a; 1.工具环境准备&#xff1a;①VMware安装及使用&#xff1b…