系统学习Linux-Rsync远程数据同步服务(三)

一、概述

rsync是linux 下一个远程数据同步工具

他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输

会对比两个文件的不同部分,传输差异部分,因此传输速度相当快

rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝

二、特性

快速

第一次传输全部,下一次传输差异

rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽

安全

可以使用scp、ssh等方式传输

直接通过socket连接

支持匿名传输、方便进行网站镜像

三、应用场景

增量同步

备份迁移

四、数据的同步方式

数据备份:拉取(下载)   pull

数据恢复:推送(上传)   push

五、rsync传输模式

本地传输  本地同步数据,类似于cp

远程传输  远程同步数据,类似于scp

守护进程  通过模块化的方式实现批量传输

六、rsync应用

安装

yum -y install rsync

如果已经安装,直接启动

systemctl start rsyncd

监听端口号

TCP/873

七、rsync命令

格式

rsync [选项] 原始位置 目标位置

作为远程命令

拉取  rsync [OPTION...] [USER@]HOST:SRC... [DEST]

推送  rsync [OPTION...] SRC... [USER@]HOST:DEST

作为rsync服务

拉取  rsync [OPTION...] [USER@]HOST::SRC... [DEST]

         rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

推送  rsync [OPTION...] SRC... [USER@]HOST::DEST

          rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

选项

-a  归档模式,递归并保留对象属性,等同于-rlptgoD

-v  -verbose           显示同步过程的详细信息

-z  在传输文件时进行压缩

举例

本地  rsync  -avz  /abc  /opt

          rsync  -avz  abc/  /opt

远程   rsync -avz root@192.168.2.7:/etc/hostname  /root/

           rsync -avz  /root/hostname root@192.168.2.7:/etc/hostname 

配置文件

/etc/rsyncd.conf

全局配置

address独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP
port指定 rsync 守护进程监听的端口号,默认 873
pid filersync 的守护进程将其 PID 写入指定的文件
log file指定 rsync 守护进程的日志文件,而不将日志发送给 syslog
syslog facility指定 rsync 发送日志消息给 syslog 时的消息级别
socket options指定自定义 TCP 选项
lockfile指定rsync的锁文件存放路径
timeout超时时间

模块配置

path指定当前模块的同步路径,该参数是必须指定的
comment给模块指定一个描述
use chroot在服务运行时要不要把他锁定在家目录,默认为 true
uid和gid 指定rsync运行用户和用户组,默认nobody
max connections最大并发连接数,0为不限制
lock file指定支持 max connections的锁文件。默认/var/run/rsyncd.lock
list指定列出模块列表时,该模块是否被列出。默认为 true
read only只读选择,默认true
write only只写选择,不让客户端从服务器上下载文件。默认false
ignore errors忽略IO错误,默认true
ignore nonreadable指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。
dont compress用来指定那些在传输之前不进行压缩处理的文件。
hosts allow指定哪些主机客户允许连接该模块。默认值为 *
hosts deny指定哪些主机客户不允许连接该模块
auth users指定用于上传的用户名
secrets files指定密码文件

守护进程传输

配置

uid=rsync
gid=rsync
fake super=yes # 用于允许非root用户,在备份目录创建文件
list=false# 默认true,允许查看本机有哪些模块
auth users=rsync_backup# 用于指定认证用户
secrets file=/etc/rsync.passwd# 指定认证用户密码
read only = false
max connections=4# 允许最大连接数
read only=false 默认yes,模块目录只读权限
ignore errors# 屏蔽错误报错
timeout=900# 指定rsync传输超时时间
[backup]
path=/backup

创建用户  

useradd rsync -s /sbin/nologin -M

创建认证用户的密码

echo 'rsync_backup:123456' >/etc/rsync.passwd

chmod 600 /etc/rsync.passwd

准备模块目录

mkdir /backup

chown rsync.rsync /backup

重启服务

systemctl restart rsyncd

客户端远程传输

rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup

通过密码文件实现免密传输

vim /etc/rsync.passwd

chmod   600 /etc/rsync.passwd

rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd

实验练习

1.使用认证用户为jx_名字缩写,认证密码为班级编号

2.模块名称为juexing

3.自行修改文件内容,在服务器上实现同步

vim /etc/rsyncd.conf   写入红框内容

useradd rsync -s /sbin/nologin -M  创建rsync用户并给到命令权限

echo 'jx_lwj:2305' >/etc/rsync.passwd  给认证用户设置密码

chmod 600 /etc/rsync.passwd  并设置权限

mkdir /juexing  准备模块目录

chown rsync.rsync /juexing  目录属组属主要是给到sbin命令权限的用户与组

systemctl restart rsyncd    重启服务

打开客户端

rsync -avz /etc/hosts jx_lwj@192.168.1.1::juexing

测试成功后设置通过密码文件实现免密传输

vim /etc/rsync.passwd  写入刚才设置的密码2305

chmod 600 /etc/rsync.passwd   设置密码文件权限

rsync -avz /etc/hosts jx_lwj@192.168.1.1::juexing --password-file /etc/rsync.passwd  自动读取密码文件在/etc/rsync.passwd


rsync+inotfy实时同步

服务器端

安装网站服务,启动,但是不写首页文件

修改主配置文件

vim /etc/rsync.config

uid = root
gid = root

[wwwroot]
    path = /var/www/html
    comment = backup export area
    read only = false
    hosts allow = 192.168.1.0/24

开发客户端

安装inotify工具

inotify-tools

tar xf  inotify-tools-3.14.tar.gz

./configure && make && make install

 

配置内核参数

vim /etc/sysctl.conf

fs.inotify.max_user_instances = 1024

fs.inotify.max_queued_events = 16384

fs.inotify.max_user_watches=1048576

sysctl -P

inotifywait -mrq -e modify,create,move,delete /var/www/html

这条命令输入后  可以实时观察写入、删除等

编写脚本

vim /opt/inotify_rsync.sh

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete /var/www/html/192.168.1.1::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done

 

赋予执行权限

chmod +x inotify_rsync.sh

 

写入文件(开机自启)

vim /etc/rc.local

/root/inotify_rsync.sh

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

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

相关文章

透视表可视化简单案例

import pandas as pd import numpy as np import os basepath/Users/kangyongqing/Documents/kangyq/202307/标准版学期制C2/pathos.path.join(basepath,02freetime.csv) dtpd.read_csv(path,dtype{shifen:object}) print(dt.head()) import matplotlib.pyplot as pltfor i in …

自动化测试-selenium环境搭建

文章目录 1. 什么是自动化2. 自动化测试分类3. selenium的环境搭建4. 测试selenium 1. 什么是自动化 自动化是指使用软件工具、脚本或程序来执行一系列的任务、操作或流程,而无需人工干预或指导。 自动化测试:使用自动化工具和脚本来执行测试用例&#x…

奖牌数领跑是为何?解码长沙华中医卫科技中等职业学校的国防教育成功之道

近些年,越来越多的学生、家长、企业开始重新审视职业教育的价值。在产教融合的大背景下,职业教育已经成为了高新产业发展的人才引擎,职业教育的教学模式、软硬件配置乃至未来毕业生的就业情况,已完全变了模样。 实际上&#xff0…

Windows 组策略 部署打印机

一、服务端 1、打印机管理:添加打印机 2、选择打印机 3、第一次安装,选择这个 4、下载驱动,从磁盘安装 5、已成功安装 6、选中打印机右击属性:列出目录 7、创建一个组策略 8、组策略设置 用户设置 → 首选项 → 控制面板 → 打印…

shell脚本备份数据库

首先是在本地windows环境下尝试备份数据库 打开mysql的bin目录,然后在地址栏cmd,进入cmd界面,输入mysqldump命令,-u输入用户名,-p输入密码 还有数据库名称,以及后面要保存到的位置 mysqldump -uroot -p tes…

webpack插件compression-webpack-plugin

Vue配置compression-webpack-plugin实现Gzip压缩 1、为什么要压缩? 打包的时候开启gzip可以很大程度减少包的大小,页面大小可以变为原来的30%甚至更小,非常适合于上线部署。更小的体积对于用户体验来说就意味着更快的加载速度以及更好的用户…

Langchain-ChatGLM配置文件参数测试

1 已知可能影响对话效果的参数(位于configs/model_config.py文件): # 文本分句长度 SENTENCE_SIZE 100# 匹配后单段上下文长度 CHUNK_SIZE 250 # 传入LLM的历史记录长度 LLM_HISTORY_LEN 3 # 知识库检索时返回的匹配内容条数 VECTO…

python web开发之WSGI/uwsgi/uWSGI详解

1. 三者的定义 WSGI是一种通信协议。uwsgi是一种传输协议。uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。 2.三者的使用场景 WSGI,全称 Web Server Gateway Interface,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接…

基于微信小程序的求职招聘系统设计与实现(Java+spring boot+MySQL+微信小程序)

获取源码或者论文请私信博主 演示视频: 基于微信小程序的求职招聘系统设计与实现(Javaspring bootMySQL微信小程序) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java s…

如何为SoC做ARM CPU适配——以裸核使用malloc为例

本文任务:为陌生的SoC平台编写基础软件,适配 malloc() 函数 0 如何为SoC做ARM CPU适配 今时不同往日,我们平时开发/娱乐接触到的消费级MCU/MPU基本山都是包含处理核与一系列外设的SoC。如果熟悉裸片开发,一定会在厂家提供的标准…

铁电材料极化高压放大器ATA-7025技术指标及使用说明

铁电材料是一类具有特殊电学性质的材料,在现代电子技术和器件中具有广泛的应用。铁电材料的极化是其重要的特征之一,极化测试是评估铁电材料性能的关键方法之一。一般铁电极化测试,是通过根据外电场施加的电压变化来观察材料产生的极化效应。…

结构型模式 - 组合模式

概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理…

微信合并转发的图片如何批量保存

今天遇到一个场景:朋友给转发来了一个合并的聊天记录,里面是几十张图片,希望能打印出来。逐张保存太费手了。下面是批量保存图片的方法: 1、登录PC端微信; 2、将要保存图片的这条合并转发的聊天记录收藏;…

Camtasia Studio 2023怎么导出mp4格式的视频的详细教程介绍

很多用户刚接触Camtasia Studio 2023,不熟悉如何保存mp4格式的视频。在今天的文章中小编为大家带来了Camtasia Studio 2023保存为mp4格式的视频的详细教程介绍。 Camtasia Studio 2023保存为mp4格式的视频的详细教程 1、 打开Camtasia Studio。 Camtasia Studio- …

解决appium-doctor报ffmpeg cannot be found

一、下载ffmpeg安装包 https://ffmpeg.org/download.html 找到如图所示红框位置点击下载ffmpeg安装包。 二、配置ffmpeg环境变量 三、检查ffmpeg版本信息 重新管理员打开dos系统cmd命令提示符,输入ffmpeg查看是否出现版本信息,安装完好。 ffmpeg

短视频矩阵系统源码--开发实践

短视频矩阵系统源码开发技术: 1. 数据采集:使用Python的requests库进行数据爬取,使用Selenium模拟浏览器操作,解决抖音反爬虫机制。 2. 数据处理:使用Python的正则表达式、BeautifulSoup等库进行数据处理。 3. 关键…

使用Python和Scrapy实现抓取网站数据

Scrapy是一个功能强大的网络爬虫框架,允许开发者轻松地抓取和解析网站内容,这篇文章主要为大家介绍了如何使用Python的Scrapy库进行网站数据抓取,需要的可以参考一下 在本文中,我们将介绍如何使用Python的Scrapy库进行网站数据抓…

selenium-多窗口和frame处理

1.切换窗口 适用场景:点击按钮后,重新打开一个窗口,想要在新的窗口定位操作,就需要切换窗口 原理:获取窗口的唯一标识就是句柄,获取到句柄,就可以切换到对应的窗口了 处理方法: …

安达发|高级计划与智能排程APS软件的发展史进程

从泰勒的科学管理理论出发,率先追求科学的管理理论和管理工具,在计算机成为企业日常管理的基本工具之后,信息系统已经成为提高工厂管理水平的重要支柱。 在工厂计划领域,开始了从MRP到MRPII再到ERP的演变过程。MRPII指的是制造…

自动化测试工具比传统测试工具的优势体现在哪里?

随着软件行业的快速发展和扩张,自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用,那你知道自动化测试工具比传统测试工具的优势体现在哪里吗? 首先,自动化测试工具能够大大缩短测试周期。相比于传统手动测试&#xff…