分布式运用——rsync远程同步

这篇具有很好参考价值的文章主要介绍了分布式运用——rsync远程同步。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、rsync的背景和原理

rsync(Remote Sync,远程同步)是由Andrew Tridgell于1996年开发的一款开源软件。 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

1.rsync的功能

 2.rsync的应用场景

文件备份:rsync可以快速而高效地完成文件备份,通过增量备份功能,节省存储空间和传输时间。
数据同步:rsync能够确保不同服务器或设备之间的文件保持同步,使得多节点间的数据一致性得以保障。
网络传输:rsync通过压缩和增量传输的特性,非常适合用于跨网络传输大文件或者大量小文件。

3.使用rsync的基本命令

分布式运用——rsync远程同步,分布式

 4.scp与rsync的区别

分布式运用——rsync远程同步,分布式

综上所述,scp适用于简单的文件复制和传输,而rsync则更适用于需要高效、增量同步和备份的场景。选择使用哪个工具取决于具体的需求和预期的功能。

二、配置rsync源服务器 

1.关闭防火墙

systemctl stop firewalld
setenforce 0
rpm -q rsync							#一般系统已默认安装rsync

分布式运用——rsync远程同步,分布式

 2.建立/etc/rsyncd.conf 配置文件

vim /etc/rsyncd.conf			                    	#添加以下配置项
uid = root
gid = root
use chroot = yes										#禁锢在源目录
address = 192.168.190.50								#监听地址
port = 873												#监听端口 tcp/udp 873,可通过cat /etc/services | grep rsync查看
log file = /var/log/rsyncd.log							#日志文件位置
pid file = /var/run/rsyncd.pid							#存放进程 ID 的文件位置
hosts allow = 192.168.190.0/24							#允许访问的客户机地址
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z		#同步时不再压缩的文件类型

[wwwroot]												#共享模块名称
path = /var/www/html									#源目录的实际路径
comment = Document Root of www.fxk.com
read only = yes											#是否为只读
auth users = backuper									#授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db						#存放账户信息的数据文件

#如采用匿名的方式,只要将其中的“auth users”和“secrets file”配置项去掉即可。
#为备份账户创建数据文件
vim /etc/rsyncd_users.db
backuper:123456					#无须建立同名系统用户,backuper为用户名,123456为密码。

chmod 600 /etc/rsyncd_users.db

分布式运用——rsync远程同步,分布式

分布式运用——rsync远程同步,分布式

 3.保证所有用户对源目录/var/www/html 都有读取权限

chmod +r /var/www/html/
ls -ld /var/www/html/

分布式运用——rsync远程同步,分布式

 4.启动 rsync 服务程序

rsync --daemon				#启动 rsync 服务,以独立监听服务的方式(守护进程)运行 

netstat -anpt | grep rsync

分布式运用——rsync远程同步,分布式

 5.关闭 rsync 服务

kill $(cat /var/run/rsyncd.pid)
rm -rf /var/run/rsyncd.pid

分布式运用——rsync远程同步,分布式

三、发起端 

基本格式:rsync [选项] 原始位置 目标位置

1.常用选项

分布式运用——rsync远程同步,分布式

2.将指定的资源下载到本地/opt 目录下进行备份。

格式一:
rsync -avz backuper@192.168.190.50::wwwroot /opt/					#密码123456

格式二:
rsync -avz rsync://backuper@192.168.190.50/wwwroot /opt/

分布式运用——rsync远程同步,分布式

 3.免交互格式配置

echo "123456" > /etc/server.pass
chmod 600 /etc/server.pass
rsync -az --delete --password-file=/etc/server.pass backuper@192.168.190.50::wwwroot /opt/

定时同步
crontab -e
30 0 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass backuper@192.168.190.50::wwwroot /opt/
#为了在同步过程中不用输入密码,需要创建一个密码文件,保存 backuper 用户的密码,如 /etc/server.pass。在执行 rsync 同步时使用选项 “--password-file=/etc/server.pass” 指定即可。

systemctl restart crond
systemctl enable crond

分布式运用——rsync远程同步,分布式

 四、发起端配置 rsync+inotify

使用inotify通知接口,可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。
因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。

1.修改rsync源服务器配置文件 

vim /etc/rsyncd.conf
......
read only = no											#关闭只读,上行同步需要可以写

kill $(cat /var/run/rsyncd.pid)
rm -rf /var/run/rsyncd.pid
rsync --daemon	
netstat -anpt | grep rsync

chmod 777 /var/www/html/

分布式运用——rsync远程同步,分布式

 2.调整 inotify 内核参数

在Linux内核中,默认的inotify机制提供了三个调控参数:max_queue_events(监控事件队列,默认值为16384)、max_user_instances(最多监控实例数,默认值为128)、max_user_watches(每个实例最多监控文件数,默认值为8192)。当要监控的目录、文件数量较多或者变化较频繁时,建议加大这三个参数的值。

cat /proc/sys/fs/inotify/max_queued_events
cat /proc/sys/fs/inotify/max_user_instances
cat /proc/sys/fs/inotify/max_user_watches

vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 102400

sysctl -p

分布式运用——rsync远程同步,分布式

3.安装 inotify-tools 

用 inotify 机制还需要安装 inotify-tools,以便提供 inotifywait、inotifywatch 辅助工具程序,用来监控、汇总改动情况。
inotifywait:可监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一有变动立即输出结果。
inotifywatch:可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况。

tar zxvf inotify-tools-3.14.tar.gz -C /opt/

cd /opt/inotify-tools-3.14
./configure
make && make install

#可以先执行“inotifywait”命令,然后另外再开启一个新终端向 /var/www/html 目录下添加文件、移动文件,在原来的终端中跟踪屏幕输出结果。
inotifywait -mrq -e modify,create,move,delete /var/www/html

#选项“-e”:用来指定要监控哪些事件
#选项“-m”:表示持续监控
#选项“-r”:表示递归整个目录
#选项“-q”:简化输出信息

分布式运用——rsync远程同步,分布式

 4.在另外一个终端编写触发式同步脚本

注意,脚本名不可包含 rsync 字符串,否则脚本可能不生效

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.80.10::wwwroot/"
#使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
	#如果rsync未在执行,则立即启动
        $RSYNC_CMD
    fi
done


chmod +x /opt/inotify.sh
chmod 777 /var/www/html/
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify.sh' >> /etc/rc.d/rc.local				#加入开机自动执行

分布式运用——rsync远程同步,分布式

 上述脚本用来检测本机/var/www/html 目录的变动情况,一旦有更新触发 rsync 同步操作,上传备份至服务器 192.168.190.50 的 wwwroot 共享目录下。
触发式上行同步的验证过程如下:

  1. 在本机运行 /opt/inotify.sh 脚本程序。
  2. 切换到本机的 /var/www/html 目录,执行增加、删除、修改文件等操作。
  3. 查看远端服务器中的 wwwroot 目录下的变化情况。
     

五.使用rsync来实现快速删除大量文件。 

假如要在linux下删除大量文件,比如100万、1000万,像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf * 可能就不好使了,因为要等待很长一段时间。在这种情况下我们可以使用rsync来巧妙处理。rsync实际用的是替换原理。

先建立一个空的文件夹
mkdir /root/noelle
用rsync删除目标目录
rsync --delete-before -a -H -v --progress --stats /root/noelle /usr/local/nginx/proxy_temp/
这样目标目录很快就被清空了
选项说明:

分布式运用——rsync远程同步,分布式

mkdir /root/noelle
#建立一个空的文件夹
cd /root/noelle/
touch {1..10000}
#模拟/date/test文件中有1万个文件数据
rsync --delete-before -avH --progress --stats /root/noelle
#使用rsync删除/root/noelle目录中的文件,用空文件夹同步了test文件夹
选项说明:
--delete-before 接收者在传输进行删除操作
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性-H 保持硬连接的文件
-v 详细输出模式
-H 保持硬连接的文件
--progress 在传输时显示传输过程
--stats 给出某些文件的传输状态
cd /root/noelle
ls
#进入查看数据为空

分布式运用——rsync远程同步,分布式

分布式运用——rsync远程同步,分布式文章来源地址https://www.toymoban.com/news/detail-525982.html

到了这里,关于分布式运用——rsync远程同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式运用——存储系统Ceph

    Ceph是一个开源的分布式存储解决方案,旨在提供可扩展性、高性能和强大的数据可靠性。它采用了一种分布式对象存储架构,能够同时提供块存储和文件存储的功能。本篇博客将深入探索Ceph的原理、特性和应用场景,帮助读者更好地理解和使用这一强大的存储解决方案。

    2024年02月17日
    浏览(34)
  • 分布式运用之Filebeat+Kafka+ELK 的服务部署

    Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该 log 文件末端,

    2024年02月06日
    浏览(33)
  • 云事业群CTO线技术晋升考核机试题-分布式专题-D 分布式数据同步

      作者:田超凡 1 缓存一致性产生背景 答:当需要频繁访问数据库的时候,虽然数据库底层基于B+索引检索数据,但是仍然会十分消耗磁盘IO资源,导致数据库访问压力增加。 此时可以基于缓存设计来减轻数据库访问压力。 2 多级缓存架构设计方案 答:多级缓存架构设计采用

    2024年02月16日
    浏览(32)
  • NRK3303语音识别芯片在照明灯上的运用,一款可分布式语音IC方案

    随着科技的不断进步,人们对于家居生活中的照明设备的要求也逐渐提高。传统的照明方式已经不能满足人们对智能家居的需求,我们需要更加智能、易于操作、高效节能的智能化照明系统。因此,智能照明应运而生,为我们提供了更加智能化、可控性更强的照明体验,满足

    2024年02月06日
    浏览(59)
  • clickhouse(十四、分布式DDL阻塞及同步阻塞问题)

    在clickhouse 集群的操作中,如果同时执行一些重量级变更语句,往往会引起阻塞。 一般是由于节点堆积过多耗时的ddl。然后抛出如下异常 1.查询zookeeper的队列数,节点完成情况。 2.查询mutations表,改更较重操作一般会在这个表记录。 先看能不能是kill MUTATION ,确定一下是不是

    2024年02月11日
    浏览(29)
  • SpringCloud学习路线(12)——分布式搜索ElasticSeach数据聚合、自动补全、数据同步

    一、数据聚合 聚合(aggregations): 实现对文档数据的统计、分析、运算。 (一)聚合的常见种类 桶(Bucket)聚合: 用来做文档分组。 TermAggregation: 按照文档字段值分组 Date Histogram: 按照日期阶梯分组,例如一周一组,一月一组 度量(Metric)聚合: 用以计算一些值,比如

    2024年02月15日
    浏览(32)
  • 分布式 SpringCloudAlibaba、Feign与RabbitMQ实现MySQL到ES数据同步

    本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 同步调用 方案一:同步调用 基本步骤如下: hotel-demo对外提供接口,用来修改elasticsearch中的数据 酒店管理服务在完成数据库操

    2024年04月11日
    浏览(36)
  • 【Redisson】Redisson--分布式远程服务(Remote Service)

    Redisson系列文章: 【Redisson】Redisson–基础入门 【Redisson】Redisson–布隆(Bloom Filter)过滤器 【Redisson】Redisson–分布式锁的使用(推荐使用) 【分布式锁】Redisson分布式锁底层原理 【Redisson】Redisson–限流器 当前有两台服务器连接的是同一个Redisson中间件,这两台服务器叫它们

    2024年02月13日
    浏览(34)
  • elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)

    **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近

    2024年02月08日
    浏览(39)
  • 开源分布式任务调度系统DolphinScheduler本地部署与远程访问

    本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内网穿透工具实现公网访问DolphinScheduler内网并进行远程办公,帮助开发人员进行远程任务调度及管理,提高工作效率。 DolphinScheduler是一款开源的分布式任务调度系统,它可以帮助开发人员更加方

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包