【基于CentOS 7的Rsync服务】

news2024/11/24 3:50:13

目录

一、概述

二、特性

1.快速

2.安全

3.应用场景

三、数据的同步方式

1.pull

2.push

四、rsync传输模式

1.本地传输

2.远程传输

3.守护进程

五、rsync应用

1.安装

2.监听端口

六、rsync命令

1.格式

1.1 作为远程命令

1.2 作为rsync服务

2.选项

3.举例

3.1 本地

3.2 远程

4.配置文件 - /etc/rsyncd.conf

4.1 全局配置

4.2 模块配置

5.守护进程传输

5.1 配置

5.2 创建用户

5.3 创建认证用户的密码

5.4 准备模块目录

5.5 重启服务

5.6 客户端远程传输

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

5.8 案例

七、rsync+inotify实时同步

1.服务器端

2.开发客户端

2.1 安装inotify工具

2.2 配置内核参数

2.3 命令

2.4 编写脚本

2.5 赋予执行权限

2.6 写入文件


一、概述

  • rsync是linux 下一个远程数据同步工具
  • 他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输
  • 会对比两个文件的不同部分,传输差异部分,因此传输速度相当快
  • rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝

二、特性

1.快速

  • 第一次传输全部,下一次传输差异
  • rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽

2.安全

  • 可以使用scp、ssh等方式传输
  • 直接通过socket连接
  • 支持匿名传输、方便进行网站镜像

3.应用场景

  • 增量同步
  • 备份迁移

三、数据的同步方式

1.pull

数据备份:拉取(下载)

2.push

数据恢复:推送(上传)

四、rsync传输模式

1.本地传输

本地同步数据,类似于cp

2.远程传输

远程同步数据,类似于scp

3.守护进程

通过模块化的方式实现批量传输

五、rsync应用

1.安装

yum -y install rsync

2.监听端口

TCP/873

六、rsync命令

1.格式

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

1.1 作为远程命令

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

1.2 作为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

2.选项

-a,归档模式,递归并保留对象属性,等同于-rlptgoD
-v,-verbose           显示同步过程的详细信息
-z,在传输文件时进行压缩

3.举例

3.1 本地

rsync  -avz  /abc  /opt

3.2 远程

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


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

4.配置文件 - /etc/rsyncd.conf

4.1 全局配置

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

4.2 模块配置

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                  指定密码文件

5.守护进程传输

5.1 配置

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

5.2 创建用户

useradd rsync -s /sbin/nologin -M

5.3 创建认证用户的密码

echo 'rsync_bak:123456' >/etc/rsync.passwd
chmod 600 /etc/rsync.passwd

5.4 准备模块目录

mkdir /backup
chown rsync.rsync /backup

5.5 重启服务

systemctl restart rsyncd

5.6 客户端远程传输

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

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

vim /etc/rsync.passwd
                    123456
chmod   600 /etc/rsync.passwd
rsync -avz /etc/hosts rsync_backup@192.168.42.140::backup --password-file /etc/rsync.passwd

5.8 案例

  • 使用认证用户为名字,认证密码为123456
  • 模块名称为win

 

  • 客户端创建文件user.txt,内容为所有的用户信息

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

 

七、rsync+inotify实时同步

1.服务器端

  • 安装网站服务,启动,但是不写首页文件
  • 修改主配置文件

            uid = root
            gid = root
            [wwwroot]
            path = /var/www/html
            comment = backup export area
            read only = false
            hosts allow = 192.168.42.0/24

2.开发客户端

2.1 安装inotify工具

inotify-tools
tar xf  inotify-tools-3.14.tar.gz
./configure && make && make install

2.2 配置内核参数

vim /etc/sysctl.conf
        fs.inotify.max_user_instances = 1024
        fs.inotify.max_queued_events = 16384
        fs.inotify.max_user_watches = 1048576
sysctl -P

2.3 命令

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

2.4 编写脚本

vim 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.42.140::wwwroot"
        $INOTIFY_CMD | while read DIRECTORY EVENT FILE
        do
        $RSYNC_CMD 
        done

2.5 赋予执行权限

chmod +x inotify_rsync.sh

2.6 写入文件

vim /etc/rc.local
        /root/inotify_rsync.sh

 2.7 启动验证

./inotify_rsync.sh 

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

 

 

 

ok

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

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

相关文章

服务器数据恢复-ESX SERVER无法连接到STORAGE的数据恢复案例

服务器数据恢复环境: 某公司信息管理平台,数台VMware ESX SERVER虚拟机共享一台IBM某型号存储。 服务器故障: VC报告虚拟磁盘丢失,管理员ssh到ESX中执行fdisk -l命令查看磁盘,发现STORAGE已经没有分区表了。重启设备后…

2023-7-20-第二十一式访问者模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

unity预制体打包

unity做好的预制体如果给别的工程使用,如果是单纯的ctrlcv会导致丢失引用,如材质信息等,我们可以将其打包好再导入给别的工程。 如打包这个cube: 点击Export,选择保存位置

【算法基础:搜索与图论】3.2 树与图的dfs和bfs

文章目录 例题846. 树的重心(深度优先遍历 / 树形DP)⭐⭐⭐⭐⭐🚹🚹🚹🚹🚹(重要!好题!)847. 图中点的层次 相关链接 要学会建树、建图的通用方法。…

【C++】C++ 11 新特性

文章目录 📕 ★ 右值引用 ★概念左值引用和右值引用的比较使用场景和意义移动构造左值引用的缺陷 完美转发属性丢失为什么会属性丢失解决方法 📕 新的类功能默认成员函数default 和 delete 关键字 📕 lambda 表达式问题的提出概念函数对象和 …

nuxt获取地址栏(路由)参数

要获取的路由地址(页面顶部地址栏):http://172.31.0.1:5353/judge-manage?id3694089482878918764&name%E6%B5%8B%E8%AF%95&judgeIde9IJWN5usmzbrtNC3zYSRtAcKu-M333h 1、获取域名或ip端口:172.31.0.1:5353 2、获取地址…

JMeter的使用方法

JMeter是开源软件,100%的使用Java语言来进行开发的,支持主流的协议(HTTP,HTTPS,WebService,gRPC)的API测试和性能测试,是一款非常优秀的测试工具软件。 java 语言编写的程序,程序要运行,对外运行的程序有两…

Windows 2012 R2 编辑ini文本遇到的编码问题

在编辑服务端配置文件时,发现对于ini文本文件: 需注意点一:如果另存为UTF-8保存的实际上格式是UTF-8-BOM编码格式; 但是两种格式是存在差异的: 因此造成在使用C#调用系统DLL读取文件时并未报错,但是当使用…

access数据库注入

access数据库一般是100人以下的小型数据库,后缀是asp的网站 先加一个’看下回显内容,有没有报错 在用and 11 和and 12看下回复内容 and 12 有报错内容,可以确定存在注入点 猜数据库名字,asp的数据库后缀是mdb and exists(select *…

Java将数据集合转换导出为图片

将数据集合导出为图片 Java将数据集合转换导出为根据数据自适应大小的图片,并且保证数据的完整展示 工具类代码 package xxxxxxxxx;import cn.hutool.core.date.DateTime;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.se…

linux部署前后端项目

使用nginx部署前端vue项目: nginx的安装就不在过了,直接打包vue项目: npm run build运行完之后会生成一个dist文件夹 将dist文件夹复制到linux文件中,我这里放到了/usr/local/vue目录下: 打开nginx的conf目录下的ngi…

Vue3通透教程【十六】TS编译配置

文章目录 🌟 写在前面🌟 初始化配置文件⭐ target⭐ module⭐ lib⭐ types/node⭐ include⭐ outDir🌟 写在最后 🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更…

muduo库的log

muduo 库里的日志打印比较复杂&#xff0c;跟标准库 std::cout << 似乎比较像吧&#xff0c;库里自己实现了“流”式的日志打印&#xff0c;今天一起来看一下。 int main(int argc, char* argv[]) {CLogger::setLogLevel(CLogger::INFO);LOG_INFO << "loggin…

Xcode 15 beta 4 (15A5195m) - Apple 平台 IDE

Xcode 15 beta 4 (15A5195m) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接&#xff1a;https://sysin.org/blog/apple-xcode-15/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org visonOS …

07 QT信号与槽重载问题及解决

Tips&#xff1a; 参数重载时需要函数指针明确重载的是哪一个&#xff0c;避免出现二义性 案例修改&#xff1a; 重载学生类中的treat函数&#xff0c;增加foodName参数 //Teacher.h #ifndef TEACHER_H #define TEACHER_H#include <QObject>class Teacher : public QObje…

Jmeter安装及快速入门(超详细教程)

目录 1.安装Jmeter 1.1.下载 1.2.解压 1.3.运行 2.快速入门 2.1.设置中文语言 2.2.基本用法 1.安装Jmeter Jmeter依赖于JDK&#xff0c;所以必须确保当前计算机上已经安装了JDK&#xff0c;并且配置了环境变量。 1.1.下载 可以Apache Jmeter官网下载&#xff0c;地址&am…

18.matlab数据分析多项式的拟合(matlab程序)

1.简述 解决数据拟合问题最重要方法是最小二乘法和回归分析。如&#xff0c;我们需要从一组测定的数据&#xff08;例如N个点&#xff08;xi&#xff0c;yi&#xff09;&#xff08;i0,1&#xff0c;…&#xff0c;m&#xff09;&#xff09;去求得自变量 x 和因变量 y 的一个近…

解决Vue2中控制台报错 [WDS] Disconnected! 问题

Vue2 项目打开控制台时发现如下报错 &#xff1a; [WDS] Disconnected! client?9556:172 其实并没有对项目运行本身造成什么实质性的影响&#xff0c;但是一条红色的提示摆在那里确实不太好看&#xff0c;还是把他给解决掉吧。 在网上看好多人说需要将 config…

django实现好看的翻页分页效果,封装翻页组件,实现在任意页面实现翻页功能。

一、实现目标 在做web开发的时候,我们经常需要显示表格或者列表类型的数据,当数据比较多的时候,我们不会一次性全部显示出来,而是一次只显示固定数量的数据,当要查看其他数据时,点击翻页进行查看,而这个功能就是我们实现的分页、翻页功能。 话不多说,我们期望实现的翻页…

opencv-15 数字水印原理

最低有效位&#xff08;Least Significant Bit&#xff0c;LSB&#xff09;指的是一个二进制数中的第 0 位&#xff08;即最低位&#xff09;。 最低有效位信息隐藏指的是&#xff0c;将一个需要隐藏的二值图像信息嵌入载体图像的最低有效位&#xff0c;即将载体图像的最低有效…