Rsync+notify文件实时同步工具
rsync ( Remote sync,远程同步)
是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。
Rsync是Linux系统下的数据镜像备份工具,使用快速增量备份工具Remote sync 可以远程同步,可以在不同主机之间进行同步,可实现全量备份与增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适合用于架构集中式备份或异地备份等应用。同时Rsync支持本地复制,或者与其他SSH、 rsync主机同步。
Rsync官方网站:https://rsync.samba.org/
同步方式
(1)完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。
(2)差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。
(3)增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)
同步过程
选项 含义
-r 递归模式,包含目录及子目录中的所有文件
-l 对于符号链接文件仍然复制为符号链接文件
-v 显示同步过程的详细(verbose)信息
-z 在传输文件时进行压缩( compress )
-a 归档模式,保留文件的权限、属性等信息,等同于组合选项"-r lptgoD"
-p 保留文件的权限标记
-t 保留文件的时间标记
-g 保留文件的属组标记(仅超级用户使用)
-o 保留文件的属主标记(仅超级用户使用)
-H 保留硬连接文件
-A 保留ACL属性信息
-D 保留设备文件及其他特殊文件
-delete 删除目标位置有而原始位置没有的文件
-checksum 根据校验和(而不是文件天小、修改时间)来决定是否跳过文件
实验操作:
主机 备注
192.168.32.129 客户端,发起端
192.168.32.130 服务端,同步源
客户端:192.168.32.129[root@localhost ~]# systemctl stop firewalld.service && setenforce 0
[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
[root@localhost opt]# rpm -q rsync
若没有rsync,则yum安装
[root@localhost opt]# yum install -y rsync
[root@localhost opt]# rpm -q rsync
rsync-3.1.2-12.el7_9.x86_64
[root@localhost opt]# cd /home/
[root@localhost home]# ls
[root@localhost home]# mkdir -p /home/student && echo "this is school" > /home/student/1.txt
[root@localhost home]# ls /home/student/1.txt
/home/student/1.txt
[root@localhost home]# cat /home/student/1.txt
this is school
同步/home/student/下的文件到/opt/
[root@localhost home]# rsync -avz /home/student/ /opt/
sending incremental file list
./
1.txtsent 121 bytes received 38 bytes 318.00 bytes/sec
total size is 15 speedup is 0.09
[root@localhost home]# cd /opt/
[root@localhost opt]# ls
1. txt
[root@localhost opt]# mkdir
student
[root@localhost opt]# ls
1. txt student服务端:192.168.32.130
[root@localhost ~]# systemctl stop firewalld.service && setenforce 0
[root@localhost opt]# yum install -y rsync
[root@localhost opt]# rpm -q rsync
rsync-3.1.2-12.el7_9.x86_64[root@localhost opt]# rpm -qc rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd### 备份好方便回滚
[root@localhost ~]# cp /etc/rsyncd.conf /etc/rsyncd.conf_bak
### 配置
[root@localhost ~]# vim /etc/rsyncd.conf
[root@localhost ~]# mkdir -p /var/www/html
[root@localhost ~]# ls -ld /var/www/html
drwxr-xr-x. 2 root root 6 12月 11 10:54 /var/www/html
[root@localhost ~]# chmod +r /var/www/html/
[root@localhost ~]# vim /etc/rsyncd_users.db##给个权限,只有自己的用户访问,别的用户访问不了
[root@localhost ~]# cat /etc/rsyncd_users.db
zhangsan:123456## 重新加载rsync
[root@localhost ~]# rsync --daemon
[root@localhost ~]# netstat -antp|grep rsync
tcp 0 0 192.168.32.130:873 0.0.0.0:* LISTEN 59812/rsync
[root@localhost ~]# cd /var/www/html
[root@localhost html]# cp /etc/passwd /etc/shadow ./## 拷贝文件到当前的目录中
[root@localhost html]# ls
passwd shadow
[root@localhost html]### myhtml是/etc/rsyncd.conf 配置文件下指定的参数目录
下载服务端备份源中的数据,使用配置源的第二种方式进行备份
(rsync -avz zhangsan@192.168.32.130::myhtml /opt/ )客户端:192.168.32.129
[root@localhost opt]# rsync -avz zhangsan@192.168.32.130::myhtml /opt/
Password:
receiving incremental file list
shadowsent 46 bytes received 374 bytes 120.00 bytes/sec
total size is 1,361 speedup is 3.24## 拷贝文件到当前的目录中
[root@localhost opt]# ls
1.txt passwd shadow student
增量数据备份
服务端:192.168.32.130## 修改192.168.32.130配置文件下的password ,新增一行,表示增量数据
[root@localhost html]# vim /var/www/html/passwd
客户端:192.168.32.129
## 此时服务端的数据已经变动了,更新了里面修改过后的文件,密码为123456上面服务端中的创建的密码[root@localhost ~]# rsync -avz zhangsan@192.168.32.130::myhtml /opt/student/
Password:
receiving incremental file list
./
passwd
shadowsent 65 bytes received 768 bytes 238.00 bytes/sec
total size is 1,395 speedup is 1.67[root@localhost opt]# vim /opt/student/passwd
## 可以看到文件已经和服务端修改过的一样的了
配置免交互密码
客户端:192.168.32.129
[root@localhost opt]# echo "123456" > /etc/server.pass
[root@localhost opt]# chmod 600 /etc/server.pass服务端:192.168.32.130
## 由于本地没有此文件需要先自行创建一个文件数据,里面的数据可以随便输入
[root@localhost html]# vim /etc/yum.repos.d/local.repo## 把创建好的数据拷贝进html目录中
[root@localhost html]# cp /etc/yum.repos.d/local.repo /var/www/html/
## 备份源中已有新增的数据
客户端:192.168.32.129
[root@localhost opt]# rsync -avz --password-file=/etc/server.pass zhangsan@192.168.32.130::myhtml /opt/student/
## 此时免交互密码设置成功,可直接下载文件
可以看到客户端已经有同步新增数据文件了
使用inotify工具进行实时同步(上传数据)
发起端(客户端)配置rsync+inotify
使用inotify通知接口,可以用来监控文什系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。
因为 inotify 通知机制出 Linux 内核提供,因此主要做木机监控,在触发式备份中应用时更适合上行同步。
服务端:192.168.32.130
[root@localhost html]# vim /etc/rsyncd.conf
[root@localhost html]# cat /var/run/rsyncd.pid
59812
## 杀掉进程
[root@localhost html]# kill $(cat /var/run/rsyncd.pid)
[root@localhost html]# netstat -antp|grep rsync
[root@localhost html]# rsync --daemon
[root@localhost html]# netstat -antp|grep rsync
tcp 0 0 192.168.32.130:873 0.0.0.0:* LISTEN 77936/rsync
[root@localhost html]# chmod 777 /var/www/html/
[root@localhost html]# ls /var/www/html/
local.repo passwd shadow客户端:192.168.32.129## inotify 的默认内核参数
[root@localhost opt]# cat /proc/sys/fs/inotify/max_queued_events
16384## 每个用户所能创建的Inotify实例的上限
[root@localhost opt]# cat /proc/sys/fs/inotify/max_user_instances
128## 每个inotify实例相关联的watches的上限,即每个inotify实例可监控的最大目录、文件数量
[root@localhost opt]# cat /proc/sys/fs/inotify/max_user_watches
8192
[root@localhost opt]# vim /etc/sysctl.conf
[root@localhost opt]# sysctl -p
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576把 inotify-tools-3.14.tar.gz 放入进 opt 目录中下载地址:https://sourceforge.net/projects/inotify-tools/files/inotify-tools-3.14.tar.gz/download
## 安装依赖包
[root@localhost opt]# yum install -y gcc gcc-c++ make
[root@localhost opt]# tar -zxvf inotify-tools-3.13.tar.gz
[root@localhost opt]# cd inotify-tools-3.13
[root@localhost inotify-tools-3.13]# ./configure && make && make install
使用命令进行监控(inotifywait -mrq -e modify,create,move,delete )
选项 含义
-e 用来指定要监控哪些事件
-m 表示持续监控
-r 表示递归整个目录
-q 简化输出信息
客户端:192.168.32.129
## 表示持续监控/opt/student/目录下的事件
[root@localhost opt]# inotifywait -mrq -e modify,create,move,delete /opt/student/## 另开一个客户端192.168.32.129窗口,模拟删除操作
[root@localhost ~]# cd /opt/student/
[root@localhost student]# ls
local.repo passwd shadow
[root@localhost student]# rm -rf passwd
## 查看实时监控窗口时间输出
## 日志实时记录打印删除事件
使用Shell脚本进行实时监控
## 监控端在什么地方,脚本也要放在相同地方[root@localhost opt]# vim inotify.sh
## --password-file=/etc/server.pass 指定密码文件
## zhangsan@192.168.32.130 指定用户,在/etc/rsyncd.conf配置文件
## /opt/student/ 客户端要同步给远程服务端的目录
## myhtml 远程服务端要同步的目录[root@localhost opt]# cat inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /opt/student/"
RSYNC_CMD="sudo rsync -arvH --delete --password-file=/etc/server.pass /opt/student/ zhangsan@192.168.32.130::myhtml"
# 使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
# while判断是否接收到监控记录
doif [ $(pgrep rsync | wc -l) -le 0 ] ; then#如果rsync未在执行,则立即启动 sudo $RSYNC_CMDfi
done
[root@localhost opt]# chmod +x /opt/inotify.sh
[root@localhost opt]# chmod 777 /opt/student/
[root@localhost opt]# chmod +x /etc/rc.d/rc.local
[root@localhost opt]# echo '/opt/inotify.sh' >> /etc/rc.d/rc.local
[root@localhost opt]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.touch /var/lock/subsys/local
/opt/inotify.sh## 启动脚本
[root@localhost opt]# sh /opt/inotify.sh
## 测试
## 复制文件到监控/opt/student/目录下
[root@localhost student]# cp /etc/yum.repos.d/* /opt/student/
## 可以看到脚本实时记录输出日志## 查看客户端192.168.32.129/opt/student/
## 查看监控脚本inotify.sh输出日志
## 查看远程同步目录服务端192.168.32.130备份同步目录是否自动同步
## 可以看到已经触发inotify.sh脚本自动同步了
生产环境同步实验(fastdfs)
环境
客户端:172.16.153.201(数据源目录)
服务端:172.16.153.202(远程同步目录)
客户端:172.16.153.201(数据源目录)
[root@201-app storage]# systemctl stop firewalld.service && setenforce 0
[root@201-app storage]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64
若没有rsync,则yum安装
[root@localhost opt]# yum install -y rsync
[root@201-app storage]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64
## 以上都有则正常
服务端:172.16.153.202(远程同步目录)
[root@202-app data]# systemctl stop firewalld.service && setenforce 0
[root@202-app data]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64
若没有rsync,则yum安装
[root@localhost opt]# yum install -y rsync
[root@202-app data]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64
## 以上都有则正常[root@202-app data]# rpm -qc rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd### 备份好方便回滚
[root@202-app data]# cp /etc/rsyncd.conf /etc/rsyncd.conf_bak
### 配置
[root@202-app data]# vim /etc/rsyncd.conf
[root@202-app data]# mkdir -p /var/www/html
[root@202-app data]# ls -ld /var/www/html
drwxr-xr-x. 2 root root 6 12月 12 11:00 /var/www/html
[root@202-app data]# chmod +r /var/www/html/
[root@202-app data]# vim /etc/rsyncd_users.db
##给个权限,只有自己的用户访问,别的用户访问不了
[root@localhost ~]# cat /etc/rsyncd_users.db
zhangsan:123456
## 给/etc/rsyncd_users.db 密码配置文件授权
[root@202-app html]# chmod 600 /etc/rsyncd_users.db
[root@202-app data]# kill $(cat /var/run/rsyncd.pid)
[root@202-app data]# rsync --daemon
[root@202-app data]# netstat -antp|grep rsync
tcp 0 0 172.16.153.202:873 0.0.0.0:* LISTEN 9566/rsync## 服务端rsync服务正常启动完成
客户端配置免交互密码(172.16.153.201)
[root@201-app storage]# echo "123456" > /etc/server.pass
[root@201-app storage]# chmod 600 /etc/server.pass
## 客户端先测试下免密同步是否成功
## 客户端:172.16.153.201
## 启动客户端rsync 服务
[root@201-app data]# rsync --daemon
[root@201-app data]# netstat -antp|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 17240/rsync
tcp6 0 0 :::873 :::* LISTEN 17240/rsync ## 测试
[root@201-app data]# rsync -avz --password-file=/etc/server.pass zhangsan@172.16.153.202::myhtml /data/
使用inotify工具进行实时同步(上传数据)
发起端(客户端)配置rsync+inotify
使用inotify通知接口,可以用来监控文什系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。
因为 inotify 通知机制出 Linux 内核提供,因此主要做木机监控,在触发式备份中应用时更适合上行同步。
服务端:172.16.153.202
[root@202-app html]# vim /etc/rsyncd.conf
## 修改此处为no
[root@202-app html]# kill $(cat /var/run/rsyncd.pid)
[root@202-app html]# netstat -antp|grep rsync
[root@202-app html]# rsync --daemon
[root@202-app html]# netstat -antp|grep rsync
tcp 0 0 172.16.153.202:873 0.0.0.0:* LISTEN 22135/rsync
[root@202-app html]# chmod 777 /var/www/html/
[root@202-app html]# ls /var/www/html/
111 a.txt test
客户端:172.16.153.201## inotify 的默认内核参数
[root@201-app data]# cat /proc/sys/fs/inotify/max_queued_events
16384## 每个用户所能创建的Inotify实例的上限
[root@201-app data]# cat /proc/sys/fs/inotify/max_user_instances
1024## 每个inotify实例相关联的watches的上限,即每个inotify实例可监控的最大目录、文件数量
[root@201-app data]# cat /proc/sys/fs/inotify/max_user_watches
1048576[root@201-app data]# vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@201-app data]# sysctl -p
客户端安装inotify-tools-3.14.tar.gz
[root@201-app data]# yum install -y gcc gcc-c++ make
[root@201-app data]# tar -zxvf inotify-tools-3.13.tar.gz
[root@201-app data]# cd inotify-tools-3.13
[root@201-app inotify-tools-3.13]# ./configure && make && make install
使用命令进行监控(inotifywait -mrq -e modify,create,move,delete )选项 含义
-e 用来指定要监控哪些事件
-m 表示持续监控
-r 表示递归整个目录
-q 简化输出信息
客户端:172.16.153.201
## 表示持续监控/data/目录下的事件
[root@201-app inotify-tools-3.13]# inotifywait -mrq -e modify,create,move,delete /data/
## 有日志输出就可以了
客户端使用Shell脚本进行实时监控
客户端:172.16.153.201
## 监控端在什么地方,脚本也要放在相同地方
[root@201-app data]# vim inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /data/"
RSYNC_CMD="sudo rsync -arvH --password-file=/etc/server.pass /data/ zhangsan@172.16.153.202::myhtml"
# 使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
# while判断是否接收到监控记录
dosudo $RSYNC_CMD
done[root@201-app data]# chmod +x /data/inotify.sh
[root@201-app data]# chmod -R 777 /data/
[root@201-app data]# chmod +x /etc/rc.d/rc.local
[root@201-app data]# echo '/data/inotify.sh' >> /etc/rc.d/rc.local
客户端:172.16.153.201
服务端:172.16.153.202
实验成功## 附件同步脚本:#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /home/fastdfs/storage/"
RSYNC_CMD="sudo rsync -arvH --delete --password-file=/etc/server.pass /home/fastdfs/storage/ zhangsan@172.16.153.202::myhtml"
# 使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
# while判断是否接收到监控记录
dosudo $RSYNC_CMD
done
相关文章:

Rsync+notify文件实时同步工具
rsync ( Remote sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备…...

小信砍柴的题解
目录 原题描述: 时间:1s 空间:256M 题目描述: 输入格式: 输出格式: 样例1输入: 题目大意: 主要思路: 注意事项: 总代码: 原题描述&#…...

华为OD机试 - 跳格子3(Java JS Python C)
题目描述 小明和朋友们一起玩跳格子游戏, 每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7], 从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点 score[n-1] 时,能得到的最大得分。 输入描述 第一行输入总的格子数量 n 第二行输入每个格子的分数 sc…...

每天五分钟计算机视觉:谷歌的Inception模块的计算成本的问题
计算成本 Inception 层还有一个问题,就是计算成本的问题,我们来看一下55 过滤器在该模块中的计算成本。 原始图片为28*28*192经过32个5*5的过滤操作,它的计算成本为: 我们输出28*28*32个数字,对于输出的每个数字来说,你都需要执行 55192 (5*5为卷积核的大小,192为通道…...

最新AI创作系统ChatGPT系统源码+DALL-E3文生图+支持AI绘画+GPT语音对话功能
一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…...

78-C语言-完数的判断,以及输出其因子
简介:一个数如果恰好等于它的因子之和,这个数就称为完数,C语言编程找出1000之内的所有完数,并输出其因子。因子可以整除该数字的数, 如6的因子:1 2 3,6%10 6%20 6%30 解释全在注…...

C# 使用FluentHttpClient请求WebApi
写在前面 FluentHttpClient 是一个REST API 异步调用 HTTP 客户端,调用过程非常便捷,采用流式编程,可以将所有请求所需的参数一次性发送,并直接获取序列化后的结果。 老规矩从NuGet上安装该类库: 这边一定要认准是 P…...

AXure交互及案列
AXure交互及案列 1.交互样式简介2.axure交互事件简介3.axure交互动作简介4.axure情形简介2.完成案列1.登录案列2.省市联动案列3.左侧联动 1.交互样式简介 Axure是一种强大的原型设计工具,它允许用户创建高保真的交互式原型,用于演示和测试Web和移动应用…...

美颜SDK技术对比,深入了解视频美颜SDK的工作机制
如何在实时视频中呈现更加自然、美丽的画面,而这正是美颜SDK技术发挥作用的领域之一。本文将对几种主流视频美颜SDK进行深入比较,以揭示它们的工作机制及各自的优劣之处。 随着科技的不断进步,美颜技术已经从简单的图片处理发展到了视频领域…...

OkHttp ,使用 HttpUrl.Builder 来添加查询参数并添加到请求对象
在使用 OkHttp 中,你可以使用 HttpUrl.Builder 来添加查询参数并将其添加到请求对象中。下面是一个示例代码: import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response;public class Main {public stat…...

图片速览 PoseGPT:基于量化的 3D 人体运动生成和预测(VQVAE)
papercodehttps://arxiv.org/pdf/2210.10542.pdfhttps://europe.naverlabs.com/research/computer-vision/posegpt/ 方法 将动作压缩到离散空间。使用GPT类的模型预测未来动作的离散索引。使用解码器解码动作得到输出。 效果 提出的方法在HumanAct12(一个标准但小规…...

Java对象结构
Java 对象(Object 实例)结构包括三部分:对象头、对象体、对齐字节。 Object的三个部分 对象头包括三个字段,第一个字段叫做 Mark Word(标记字),用于存储自身运行时的数据 例如 GC 标志位、哈希码、锁状态等信息。 第二个字段叫做 Class Pointer(类对象…...

基于redis的分布式锁实现方案
3. 基于redis的分布式锁实现方案: redis集群,原理是因为redis单线程串行处理. (1). SETNX方案: ①. SETNX(Set if not exists):a. 命令在指定的key不存在时,为key设置指定的值.b. SETNX Key Value设置成功,返回1.设置失败,返回0.c. 没有有效期的②. 原子操作(多个执行命令):Mu…...

基于JAVA+SpringBoot的线上智能问诊就医平台
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 智慧医药系统…...

adb: error: cannot create file/directory ‘d:/1.png‘: No such file or directory
将文件从设备读取到PC 由于权限问题,不能直接pull到电脑磁盘根目录,否则会报错: adb pull <remote> <local> eg: C:\Users\admin>adb pull /sdcard/server.log C:\Users\admin\Desktop /sdcard/server.log: 1 file pulled.…...

Pelee: A Real-Time Object Detection System on Mobile Devices(CVPR 2019)
文章目录 年三十AbstractIntroductionPeleeNet:一个高效的特征提取网络架构消融实验数据集不同设计选择对性能的影响 在ImageNet ILSVRC 2012上的结果真实设备上的速度 Pelee:实时目标检测系统Overview在VOC 2007上的结果不同设计选择的影响与其他框架的比较真实设备…...

分布式理论 | RPC | Spring Boot 整合 Dubbo + ZooKeeper
一、基础 分布式理论 什么是分布式系统? 在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”; 分布式系统是由一组通过网络进行通信、为了完成共同的…...

局域网其他pc如何访问宿主机虚拟机IP?
文章目录 背景贝瑞蒲公英设置虚拟机网络连接测试 背景 使用贝瑞蒲公英异地组网,将家里的pc作为pgsql服务器在公司使用,但是虚拟机的ip和端口访问不了 贝瑞蒲公英 设置虚拟机网络 就是添加端口转发规则 连接测试 公网内其他pc连接测试 可以看到已经连接成…...

U8 语法制导翻译技术
文章目录 一、总述二、翻译文法1、概念 三、语法制导翻译1、概念2、带属性的翻译文法3)综合属性4)继承属性5)举例 3、 L-属性翻译文法(L-ATG)1)概念2)求值规则 4、简单赋值形式的L-ATGÿ…...

剑指offer A + B
剑指offer A B 题目 输入两个整数,求这两个整数的和是多少。 输入格式 输入两个整数A,B,用空格隔开,0≤A,B≤10的8次幂 输出格式 输出一个整数,表示这两个数的和 样例输入: 3 4样例输出: 7参考答…...

gitlab(gitlab-ce)下载,离线安装
目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考: 1.下载 根据服务器操作系统版本,下载对应的RPM包。 gitlab官网: The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…...

Jmeter接口测试断言
一、响应断言 对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确。 二、添加断言 1、apply to: 通常发出一个请求只触发一个请求,所以勾选“main sampie only”就可以;若发一个请求可以触发多个服务器请…...

Temu、Shein、OZON测评自养号,IP和指纹浏览器的优缺点分析
随着全球电子商务的飞速发展,跨境电商环境展现出巨大的潜力和机遇。然而,跨境卖家们也面临着更激烈的竞争、更严格的规定和更高的运营成本等挑战。为了在这个环境中脱颖而出,一些卖家尝试使用自动脚本程序进行浏览和下单。然而,这…...

亚信科技AntDB数据库——深入了解AntDB-M元数据锁的相关概念
AntDB-M在架构上分为两层,服务层和存储引擎层。元数据的并发管理集中在服务层,数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性,引入了元数据锁(MDL)。 AntDB-M提供了丰富的元数据锁功能ÿ…...

yolov5 deepsort-船舶目标检测+目标跟踪+单目测距+速度测量
目标跟踪是一种计算机视觉技术,通过分析图像或视频数据中的目标,实时追踪目标的位置和运动轨迹。在本文中,我们将详细介绍目标跟踪的原理、方法和应用,并探讨其在各个领域中的潜在价值。 1. 目标跟踪技术的基本原理 目标跟踪技术的…...

Wireshark与其他工具的整合
第一章:Wireshark基础及捕获技巧 1.1 Wireshark基础知识回顾 1.2 高级捕获技巧:过滤器和捕获选项 1.3 Wireshark与其他抓包工具的比较 第二章:网络协议分析 2.1 网络协议分析:TCP、UDP、ICMP等 2.2 高级协议分析:HTTP…...

DDD架构实践
ddd架构浅析 背景介绍 什么是ddd架构,是以ddd思想为参考,做出一份符合ddd思想的框架。 随着技术的迭代升级,越来越多的瓶颈暴露出来,性能瓶颈,系统复杂度瓶颈,这些都逐一被迭代出的技术产物解决。最终的…...

Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI&am…...

认识缓存,一文读懂Cookie,Session缓存机制。
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...

关于react native项目中使用react-native-wechat-lib@3.0.4
关于react native项目中使用react-native-wechat-lib3.0.4 插件官网安装依赖包(Android和iOS下载插件完成后记得更新依赖,)Android中配置1.在项目文件夹下面创建文件夹wxapi(如上图)2.在文件MainApplication.java中如下…...