首页 > 其他分享 >Inofity-tools+Rsync实施复制实战

Inofity-tools+Rsync实施复制实战

时间:2023-07-31 20:33:45浏览次数:34  
标签:Inofity Rsync -- data 31 rsync nfs root tools

Inofity-tools+Rsync实施复制实战

一、先准备rsyncd服务环境

1.快速的部署rsyncd服务端
#!/bin/bash
yum install rsync -y

cat > /etc/rsyncd.conf << 'EOF'
uid = www 
gid = www 
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
[backup]
comment = chaoge rsync backup!
path = /backup
EOF

useradd -u 1000 -M -s /sbin/nologin www
mkdir -p /{backup,data}
chown -R www:www /{backup,data}
echo "rsync_backup:yuchao666" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
systemctl start rsyncd



2.执行脚本部署服务端的rsync
bash instal_rsync.sh

二、部署inotify-tools软件

内核检查

[root@nfs-31 ~]#uname -r
3.10.0-862.el7.x86_64

脚本通用型,健壮性

还有内核参数检查,
本质上是linux支持inotify机制
在性能还可以优化,支持更高的文件并发数
#检测多少个文件 ,文件内容大量的发生变化,inotify机制能同时检测多少文件 
这个参数的优化,就是调整linux的几个文件
[root@nfs-31 ~]#ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Apr 20 20:08 max_queued_events
-rw-r--r-- 1 root root 0 Apr 20 20:08 max_user_instances
-rw-r--r-- 1 root root 0 Apr 20 20:08 max_user_watches

系统文件解释
max_user_watches:设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)
默认只能监控8192个文件

max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
默认每个用户可以开启inotify服务128个进程

max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量
默认监控事件队列长度为16384

inotify-tools 系统自带的比较low的工具

sersync 金山云的运维通过c++开发的工具

lsyncd三个工具  最新的,目前有人在用,适用于大规模服务器环境的工具
这些工具就3件事
1.优化,调整了这3文件的参数
2.检测某个目录
3.触发rsync命令

1、inotifty-tools工具

需要配置好epel源,才可以安装
[root@nfs-31 ~]#  yum install inotify-tools -y

检查生成的软件命令
[root@nfs-31 ~]# rpm -ql inotify-tools |head -2
/usr/bin/inotifywait
/usr/bin/inotifywatch

上述操作我们安装好了Inotify-tools软件,生成2个重要的命令

inotifywait:在被监控的目录等待特定文件系统事件(open、close、delete等事件),执行后处于阻塞状态,适合在Shell脚本中使用,是实现监控的关键
Inotifywatch:收集被监控的文件系统使用的统计数据(文件系统事件发生的次数统计)

inotifywait

所有事件,任意的linux命令,只要对该目录的数据,文件发生了修改动作,都会被检测到

mkdir /nfs-data

[root@nfs-31 ~]#inotifywait -mrq --timefmt '%T' --format "%T----%w------%f 捕获到的事件是:%e" /nfs-data
12:27:56----/nfs-data/------ 捕获到的事件是:CLOSE_NOWRITE,CLOSE,ISDIR
12:27:56----/nfs-data/------ 捕获到的事件是:OPEN,ISDIR
12:27:56----/nfs-data/------ 捕获到的事件是:CLOSE_NOWRITE,CLOSE,ISDIR
指定检测事件的名字
Events    含义
-e  events 事件名
access    文件或目录被读取
modify    文件或目录内容被修改
attrib    文件或目录属性被改变
close    文件或目录封闭,无论读/写模式
open    文件或目录被打开
moved_to    文件或目录被移动至另外一个目录
move    文件或目录被移动到另一个目录或从另一个目录移动至当前目录
create    文件或目录被创建在当前目录
delete    文件或目录被删除
umount    文件系统被卸载


Create、delete事件
检测,创建,删除两个时间,只有你执行了对应的linux命令,才会生成日志
# inotifywait -mrq --timefmt '%T' --format "%T----%w------%f 捕获到的事件是:%e" -e  delete,create /nfs-data
12:29:46----/nfs-data/------hehe.log 捕获到的事件是:CREATE
12:30:24----/nfs-data/------aoligei.log 捕获到的事件是:CREATE
12:31:03----/nfs-data/------hehe.log 捕获到的事件是:DELETE

move事件
# inotifywait -mrq --timefmt '%T' --format "%T----%w------%f 捕获到的事件是:%e" -e  move   /nfs-data
12:31:48----/nfs-data/------xixi.log 捕获到的事件是:MOVED_FROM
12:31:48----/nfs-data/------xixi.png 捕获到的事件是:MOVED_TO

close_write事件
# inotifywait -mrq --timefmt '%T' --format "%T----%w------%f 捕获到的事件是:%e" -e  close_write /nfs-data

2、sersync工具(了解)

    <sersync>
        <localpath watch="/nfs-data">  #检测本地的哪个路径
            <remote ip="172.16.1.41" name="backup"/>  #传输到rsync服务端的backup模块
            <!--<remote ip="192.168.8.39" name="tongbu"/>--> 
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-az"/>  #rsync命令的参数
            <auth start="false" users="rsync" passwordfile="/etc/rsync."/>#认证文件信息
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>
        <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
        <crontab start="false" schedule="600"><!--600mins-->
            <crontabfilter start="false">
                <exclude expression="*.php"></exclude>
                <exclude expression="info/*"></exclude>
            </crontabfilter>
        </crontab>
        <plugin start="false" name="command"/>
    </sersync>

3、lsyncd工具(推荐使用)

1.下载安装
yum install lsyncd -y

2.修改配置文件
[root@nfs-31 /data]#cat /etc/lsyncd.conf 

settings {  #全局参数
    logfile      ="/var/log/lsyncd/lsyncd.log",
    statusFile   ="/var/log/lsyncd/lsyncd.status",
    inotifyMode  = "CloseWrite",
    maxProcesses = 8,
    }

sync {
    default.rsync,  
    source    = "/nfs-data",  #source是源的意思,要检测目录
    target    = "[email protected]::backup",  #target目标,数据要同步到的目的地
    delete= true,  #等价于--delete参数
    exclude = {".*"}, #排除文件语法,排除隐藏文件
    delay=1,
    rsync     = {
        binary    = "/usr/bin/rsync",
        archive   = true,  # -a
        compress  = true,  # -z
        verbose   = true,  # -v
        password_file="/etc/rsync.pwd",  # --password_file
        _extra={"--bwlimit=200"}
        }
    }
sync {   #如果要检测其他目录的文件同步,则加一层sync
    default.rsync,
    source    = "/nfs-data",
    target    = "[email protected]::backup",
    delete= true,
    exclude = {".*"},
    delay=1,
    rsync     = {
        binary    = "/usr/bin/rsync",
        archive   = true,
        compress  = true,
        verbose   = true,
        password_file="/etc/rsync.pwd",
        _extra={"--bwlimit=200"}
        }
    }   
 
 
    

3.启动服务
systemctl start lsryncd
[root@nfs-31 /nfs-data]#
[root@nfs-31 /nfs-data]#systemctl start lsyncd
[root@nfs-31 /nfs-data]#
[root@nfs-31 /nfs-data]#systemctl status lsyncd


4.使用工具
[root@nfs-31 /nfs-data]#for i in {1..100};do echo ${i} > ${i}.log;sleep 0.1;done
去sync服务器目录下查看文件是否同步成功

标签:Inofity,Rsync,--,data,31,rsync,nfs,root,tools
From: https://www.cnblogs.com/chunjeh/p/17594406.html

相关文章

  • rsync 远程同步
    目录一、rsync同步简介二、rsync同步1.同步方式2.备份的方式三、rsync常用命令四、配置源的两种表达方法1.格式一2.格式二五、配置rsync下行同步(定时同步)1.环境2.配置rsync源服务器3.发送端4.检测六、rsync实时同步(上行同步)1.定期同步的不足2.实时同步的优点3.......
  • rsync 远程同步
    rsync远程同步可以完成数据的备份,确保数据的安全性,而且是增量备份,减少数据的存储大小。rsync是一个快速和非常方便的文件复制工具。他能本地复制,远程复制,或者远程守护进程方式复制。  目录一、rsync概述二、rsync作用三、rsync应用场景四、rsync命令五、搭建rsync六、......
  • 群晖docker nastools搭建家庭影音中心
    1.所需镜像nastools(2.9.0),nastools2.9.1版本之后,只能够使用PT下载,对于没有PT只能够用BT的小伙伴,选这个版本nastools作用主要是对下载的电影电视剧等进行整理,方便后边的jellyfin更好的识别。同时,能够做硬链接,方便PT的小伙伴保种,对于不需要保种的,可以使用移动的方式qbittore......
  • 什么时候使用魔术方法,什么时候使用元类,什么时候使用描述符,什么时候使用装饰器, 什
    当你需要在类的实例化、属性访问或方法调用等特定时机执行特定的操作时,可以使用魔术方法。例如,假设你正在编写一个表示矩形的类,并希望在创建矩形对象时自动计算其面积。你可以使用__init__魔术方法来初始化矩形的属性,并在其中计算面积。classRectangle:def__init__(self,wi......
  • lsyncd实时同步搭建指南——取代rsync+inotify
    1.几大实时同步工具比较1.1inotify+rsync最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify+rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的......
  • rsync
    rsync纯通过rsync的命令,来实现,数据目录A拷贝到数据目录B也就是模拟cp的用法很简单rsync[选项]源数据目的数据1.安装yuminstallrsync-y2.命令语法,分几个模式-本地模式rsync参数源路径目标路径rsync-avzP/var/log/tmp参数解释-v......
  • the top vehicle diagnostic tools
    Choosingthebestvehiclediagnostictoolcanbeadauntingtask,giventheabundanceofoptionsavailableinthemarket.Withadvancementsintechnology,diagnostictoolshavebecomeessentialforefficientandaccuratevehiclerepairsandmaintenance.I......
  • The Rising Importance of Automotive Diagnostic Tools in the Repair Industry
    TheRisingImportanceofAutomotiveDiagnosticToolsintheRepairIndustryIntheever-evolvingautomotiveworld,continuousadvancementsintechnologyhavebroughtmajorchangestothewayvehiclesarediagnosedandrepaired.Automotivediagnostictools......
  • Rsync 备份服务搭建
    Rsync备份服务搭建目录Rsync备份服务搭建一.前言二.rsync和sersync2.1rsync基本语法2.2本地文件传输2.3ssh远程文件传输2.4基于服务远程主机文件传输三.部署rsync3.1项目要求3.2环境准备3.3搭建服务端rsync3.3搭建客户端rsync四.部署sersync4.1环境准备......
  • 用rsync来同步mongodb的数据,可行吗?
    用rsync来同步mongodb的数据,可行吗?当涉及到数据的备份和同步时,rsync是一个非常常用的工具。那么,我们可以使用rsync来同步mongodb的数据吗?答案是肯定的。在本文中,我将介绍如何使用rsync来备份和同步mongodb的数据,并提供相应的代码示例。首先,让我们来了解一下rsync。rsync是一个......