首页 > 其他分享 >Inofity+Rsync实时同步服务部署

Inofity+Rsync实时同步服务部署

时间:2023-05-31 21:45:14浏览次数:34  
标签:Inofity Rsync inotify -- backup rsync 实时 nfs root

第一步:部署rsync服务

1.1 服务端:

1.检查rsync是否安装
[root@rsync-backup ~]# rpm -qa rsync
rsync-3.1.2-12.el7_9.x86_64
2.对rsync服务进行配置
[root@rsync-backup ~]# cat /etc/rsyncd.conf 
uid = rsync
gid = rsync
fake super = yes 
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = This is rsync backup!
path = /backup/
3.创建rsync管理用户
[root@rsync-backup ~]# useradd -s /sbin/nologin -M rsync
4.创建数据备份储存目录,目录修改属主
[root@rsync-backup ~]# mkdir /backup/
[root@rsync-backup ~]# chown -R rsync.rsync /backup/
5.创建认证用户密码文件并进行授权600
[root@rsync-backup ~]# echo "rsync_backup:123456" > /etc/rsync.password 
[root@rsync-backup ~]# chmod 600 /etc/rsync.password 
6.启动rsync服务
[root@rsync-backup ~]# rsync --daemon
至此rsync服务端配置完成
[root@rsync-backup ~]# ps -ef | grep rsync
root        654      1  0 12:17 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root       1346   1295  0 13:09 pts/0    00:00:00 grep --color=auto rsync

1.2 客户端配置:

1.检查是否安装rsync
[root@nfs ~]# rpm -qa rsync
rsync-3.1.2-12.el7_9.x86_64
2.创建安全认证文件,并进行修改权限600
[root@nfs ~]# echo "123456" > /etc/rsync.password 
[root@nfs ~]# chmod 600 /etc/rsync.password 
3.测试数据传输(注意:一定要关闭服务端的selinux、防火墙)
[root@nfs ~]# rsync -avz /opt/ [email protected]::backup --password-file=/etc/rsync.password 
sending incremental file list
./
001.txt
002.txt

检查Linux版本是否支持Inotify机制

只有Linux内核版本在2.6.13起才支持,以及是否存在三个系统文件,存在则支持

检查Inotify相关文件
[root@nfs ~]# ll /proc/sys/fs/inotify/
total 0
-rw-r--r--. 1 root root 0 May 30 13:28 max_queued_events
-rw-r--r--. 1 root root 0 May 30 13:28 max_user_instances
-rw-r--r--. 1 root root 0 May 30 13:28 max_user_watches

第二步:部署inotify服务(首先确认是否有epel

[root@nfs ~]# yum install -y inotify-tools
[root@nfs ~]# rpm -ql inotify-tools
/usr/bin/inotifywait
/usr/bin/inotifywatch
  • inotifywait:在被监控的目录等待特定文件系统事件(open、close、delete等事件),执行后处于阻塞状态,适合在Shell脚本中使用,是实现监控的关键
  • Inotifywatch:收集被监控的文件系统使用的统计数据(文件系统事件发生的次数统计

第三步:手动测试inotify监控事件

[root@nfs ~]# inotifywait -mrq --timefmt "%y-%m-%d %T" --format "%T %w%f 当前事件:%e" -e close_write,delete /opt/

再开一个终端 [root@nfs opt]# rm -rf * #inotify检测信息如下: 23-05-30 13:39:54 /opt/001.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/002.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/003.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/004.txt 当前事件:DELETE

编写实时监控和复制脚本

1.编写一个脚本,能够循环读取文件夹内容
[root@nfs ~]# cat /tmp/inotify.sh 
#!/bin/bash
cmd="/usr/bin/inotifywait"
$cmd -mrq --timefmt "%y-%m-%d %T" --format "%T %w%f 当前事件:%e" -e close_write,delete\
 /data | \
while read line
do
    cd /data && \
    rsync -az --delete ./ [email protected]::backup
done
2.执行脚本
[root@nfs ~]# sh -x /tmp/inotify.sh 
+ cmd=/usr/bin/inotifywait
+ /usr/bin/inotifywait -mrq --timefmt '%y-%m-%d %T' --format '%T %w%f 当前事件:%e' -e close_write,delete /data
+ read line

测试脚本没问题后,将脚本放置后台运行,实时监听文件变化,进行同步,确保数据备份安全
1.脚本放置后台运行,在前台运行会占用终端,且终端关了,任务会断
[root@nfs data]# /bin/sh /tmp/inotify.sh &
[1] 1397
[root@nfs data]# jobs 
[1]+  Running                 /bin/sh /tmp/inotify.sh &
2.该任务添加至开机启动文件
[root@nfs ~]# tail -2 /etc/rc.local 
# inotify + rsync script
/bin/sh /tmp/inotify.sh &

至此Rsync+inotify实施复制结束

标签:Inofity,Rsync,inotify,--,backup,rsync,实时,nfs,root
From: https://www.cnblogs.com/junwured/p/17444969.html

相关文章

  • Streamsets读取binlog数据实时同步到MySQL
    原文:https://blog.csdn.net/maomaosi2009/article/details/1082932171、说明实时同步binlog数据到MySQL我使用了2种方式,2、方式一第一种方式较为繁琐,数据从binlog流出,经过JS数据解析器将必要的字段解析出来,流入操作选择器,根据具体需要执行的增删改操作选择最后的JDBCProducer,pi......
  • 莉莉丝游戏与火山引擎 ByteHouse 达成合作,为实时数仓建设提速
    中国头部游戏公司莉莉丝游戏(Lilith)和火山引擎ByteHouse达成合作,共同致力于加速莉莉丝游戏的实时数仓建设。此次合作将利用ByteHouse的创新技术和功能,为广告运营分析业务提效提供全面支持和帮助。莉莉丝游戏是中国中生代游戏公司代表,在中国游戏市场保持领先地位。为了支持其日......
  • 拼多多获取整站实时商品详情数据|商品标题|商品链接,数据采集,数据分析提取教程
    ​ 拼多多是一个基于社交电商的购物平台,它通过通过价格和优惠吸引大量用户,使用户形成消费场景和消费共同体,最终实现规模效应。在拼多多运营中,API接口起到了重要的作用,它可以实现不同系统之间的信息共享和数据传递,从而提高了网站的效率和数据整合性,助力拼多多的快速发展。对于热......
  • 如何将豆瓣观影记录实时同步至博客中
    事情的起因是这样的,前几日在看idealclover大佬的博客,不经意间看到了他的豆瓣观影记录,他博客中关于豆瓣观影记录是实时同步的,很好奇是如何实现的,经过查看,他是爬取的豆瓣观影界面来实现的,其实关于豆瓣观影记录,网上也有很多的教程,恰巧自己所学的Go语言也可以做简单的爬虫实现其效......
  • Linux中传输文件的scp和rsync命令
    scp#利用ssh传输文件#在linux下一般用scp这个命令来通过ssh传输文件。#1、从服务器上下载文件scpusername@servername:/path/filename/var/www/local_dir(本地目录)#例如[email protected]:/var/www/test.txt把192.168.0.101上的/var/www/test.txt的文件下载到......
  • 半天搞定实时互动AI专属虚拟人
    概述即构虚拟形象引擎(ZegoAvatar)支持自定义管理人物的虚拟形象,通过默认的虚拟形象或者自定义生成的专有虚拟形象,以表情随动、声音驱动等方式与真人实时互动,可广泛应用于语聊直播、社交互动、在线培训等多种场景中。即构虚拟形象引擎(ZegoAvatar)自定义人物虚拟形象集成SDK准备环境......
  • 获取门禁记录方式-实时获取
    实时获取开启门禁布防,每次门禁有记录产生都会主动发送信息,其中布防的方式有两种,一种是布防后只能开启一个监听,该监听海康的4200软件也在使用,因此建议在使用期间不要开启4200;另一种监听能开启多个,不过感觉这个不靠谱,建议用第一个,毕竟4200都在用。注意:使用实时获取时,人员编号不要......
  • 操作系统(3.4.2)--实时调度算法的分类
    按调度方式分类:非抢占式调度算法、抢占式调度算法1.非抢占式调度算法1)非抢占式轮转调度算法调度程序每次选择队列中的第一个任务投入运行。当时间片结束后,便把它挂在轮转队列的末尾,等待下次调度运行,而调度程序再选择下一个(队首)任务运行。这种调度算法可获得数秒至数十秒的响应时......
  • Kafka实时数据即席查询应用与实践
    作者:vivo互联网搜索团队-DengJieKafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。一、背景Ka......
  • Kafka实时数据即席查询应用与实践
    作者:vivo互联网搜索团队-DengJie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。一......