当前位置: 首页 > news >正文

rsync命令详解与实用案例

rsync命令详解与实用案例

rsync是一款功能强大的Linux文件同步工具,通过高效的增量传输算法,能够显著减少数据传输量和时间,是备份、镜像和跨平台文件同步的理想选择。其核心价值在于只传输文件的差异部分,而非全量复制,从而节省带宽和存储资源。rsync支持多种同步模式,包括本地目录同步、远程SSH同步以及通过rsync守护进程的高效传输,且可与定时任务工具结合实现自动化同步。在实际应用中,rsync广泛用于网站内容部署、日志备份、代码更新和实时文件监控等场景,有效提升了运维效率。

一、rsync基本语法与核心参数

rsync的基本语法分为本地同步和远程同步两种格式。本地同步命令结构为rsync [选项] 源路径 目标路径,而远程同步则需指定用户和远程主机,格式为rsync [选项] 源路径 [用户@]远程主机:目标路径rsync [选项] [用户@]远程主机:源路径 [目标路径]。rsync的差分算法是其高效传输的基础,通过比较源文件和目标文件的元数据(大小、时间戳)和内容(校验和),仅传输变化部分。这种机制使得rsync特别适合大文件和频繁更新的场景。

**归档模式(-a)**是rsync最常用的参数,其本质是-rlptgoD的组合,能够保留文件的所有属性。具体参数包括:-r(递归同步目录及其子目录)、-l(保留符号链接)、-p(保留文件权限)、-t(保留时间戳)、-g(保留属组信息)、-o(保留属主信息)、-D(保留设备文件和特殊文件)。**压缩传输(-z)**参数利用压缩算法减少网络传输量,对远程同步尤其有用。-v(详细输出)和-vv(更详细输出)参数用于显示同步过程的信息,便于调试。

--delete参数使目标目录与源目录完全同步,删除目标中源目录不存在的文件。--exclude="模式"--include="模式"参数允许用户指定需要排除或包含的文件和目录,支持通配符(*、?)和规则文件。--progress参数显示传输进度,-P参数等价于--partial --progress,即保留部分传输的文件并显示进度。--partial参数允许恢复中断的传输,避免每次中断后重新传输整个文件。

二、本地同步场景与案例

本地同步适用于同一台服务器上不同目录之间的文件复制和备份。基础目录同步是最常见的用例,通过-av参数保留文件属性并递归同步:

rsync -av /data/source/ /data/backup/

路径末尾的斜杠(/)表示同步目录内的内容,不带斜杠则同步整个目录。排除特定文件的同步场景常用于避免同步临时文件或日志:

rsync -av --exclude='*.log' --exclude='tmp/' /data/ /backup/

--exclude参数支持通配符和目录路径,可多次使用或通过--exclude-from=文件引用规则文件。对于需要保留历史版本的备份,rsync提供了增量备份功能,通过--link-dest参数实现:

rsync -av --link-dest=/backup/last/ /source/ /backup/current/

此命令会为未修改的文件创建硬链接到基准目录(/backup/last),仅复制差异部分,大幅节省存储空间。硬链接备份特别适合每日全量备份与增量保留,通过创建时间戳目录和软链接实现版本控制。

三、远程SSH同步场景与案例

远程SSH同步是rsync最常用的场景之一,适用于服务器间文件传输和备份。基本远程同步命令格式为:

rsync -avz /local/path user@remote:/remote/path/

-z参数启用压缩传输,-e "ssh"指定SSH协议。对于双向同步(本地与远程相互同步),可使用以下命令:

rsync -avz -e "ssh" user@remote:/path/ /local/path/

此命令会将远程目录同步到本地。若需频繁同步,可通过SSH密钥认证实现免密登录,避免每次输入密码。完全同步(包括删除目标中多余的文件)需要添加--delete参数:

rsync -avz --delete /source/ user@remote:/target/

--delete参数会删除目标目录中源目录不存在的文件,使两端数据完全一致,但使用时需谨慎,避免误删重要文件。

限速同步适用于需要控制带宽的场景,如避免同步任务占用过多网络资源:

rsync -avz --bwlimit=1024 /large_files/ user@server:/backup/

--bwlimit=KB/s参数限制传输速率,单位为KB/s。排除文件远程同步可与本地同步类似使用--exclude参数:

rsync -avz --exclude='*.tmp' --exclude='*.swp' /data/ user@remote:/backup/

此命令排除了临时文件和交换文件,仅同步实际需要的文件内容。

四、多服务器同步场景与案例

多服务器同步适用于需要将同一数据源同步到多个节点的场景,如集群部署、负载均衡服务器同步等。服务器间直接同步无需本地中转,通过SSH直接传输:

rsync -avz user1@server1:/source/ user2@server2:/dest/

此命令将服务器1的数据直接同步到服务器2,避免了本地存储的中转。批量同步脚本可用于同步到多个服务器,特别是集群环境:

#!/bin/bash
for host in centos01 centos02 centos03;
dorsync -avz /source/ $host:/dest/
done

需提前配置SSH免密登录,并通过crontab定时执行脚本。守护进程模式同步适合内网环境,通过配置rsyncd.conf实现高效传输:

rsync -avz --password-file=/etc/pass rsync_user@host::module /local/dest

服务端需启动rsync守护进程:

rsync --daemon --config=/etc/rsyncd.conf

并配置白名单和访问权限,相比SSH模式减少了握手开销,传输效率更高。

五、定时同步配置与最佳实践

结合crontab实现定时同步是自动化数据同步的常用方法。crontab时间格式分钟 小时 日 月 星期 命令,支持通配符()和步长(/5)。本地定时同步示例:

0 3 * * * rsync -avz /source /target >> /var/log/sync.log 2>&1

此命令每天凌晨3点执行同步,并将日志记录到指定文件。远程SSH定时同步需确保SSH免密登录:

0 22 * * * rsync -avz -e "ssh -i /path/key" user@remote:/source /target >> /var/log/remote_sync.log 2>&1

日志记录通过>>2>&1实现,便于后续排查问题。守护进程模式定时同步示例:

0 4 * * * rsync -avz --password-file=/etc/pass user@host::module /target >> /var/log/daemon_sync.log 2>&1

适用于内网环境的高效同步任务。

同步频率设置需根据数据变化频率和网络条件权衡:

  • 高频场景(如实时备份):每5分钟或更短(需考虑带宽和资源消耗)
  • 中频场景(如日志备份):每小时或每天固定时间(如0 2 * * *表示每日凌晨2点)
  • 低频场景(如全量备份):每周或每月一次,通常结合--delete参数

错误处理与通知是定时任务的关键,可通过日志记录和邮件通知实现:

0 3 * * * rsync -avz /source /target && echo "同步成功" | mail -s "每日备份" admin@example.com

此命令在同步成功后发送邮件通知。若需更详细的错误处理,可在脚本中添加set -etrap捕获异常,并记录到日志文件。

六、实时同步配置与高级技巧

对于需要即时响应文件变化的场景,rsync可与inotify结合实现实时文件同步inotify基础配置需先安装inotify-tools

sudo apt install inotify-tools  # Debian/Ubuntu
sudo yum install inotify-tools  # CentOS/RHEL

然后编写监控脚本:

#!/bin/bash
SRC="/var/www/html"
DEST="user@remote:/backup/web"
inotifywait -mrq -e modify,create,delete,move $SRC | while read path action file; dorsync -avz --delete $SRC/ $DEST
done

此脚本会持续监控源目录及其子目录,当检测到文件变化时触发rsync同步。事件定向同步可避免全量传输,仅同步发生变更的目录:

inotifywait -mrq -e modify,create,delete /source | while read path action file; dorsync -avz --delete $(dirname ${file})/ user@remote:/target/
done

通过$(dirname ${file})获取文件的父目录,仅同步受影响的子目录,显著提高效率。

排除临时文件是实时同步中的重要技巧,避免因编辑器临时文件(如.swp)触发不必要的同步:

inotifywait -mrq --exclude='.*\.swp$|.*~$|4913' -e close_write,create,delete $SRC | while read line; dorsync -avz --exclude='*.log' --exclude='tmp/' $SRC/ $DEST
done

--exclude参数可多次使用或通过--exclude-from=文件引用规则文件。多服务器实时同步可通过循环实现:

#!/bin/bash
SLAVES=("192.168.1.101" "192.168.1.102" "192.168.1.103")
SRC="/data/project"
inotifywait -mrq -e modify,create,delete $SRC | while read path action file; dofor slave in "${SLAVES[@]}"; dorsync -avz --delete $SRC/ $slave:/backup/projectdone
done

此脚本会将源目录的变化同步到所有指定的从服务器。

系统资源限制是实时同步需注意的问题。inotify默认可监控的文件数量有限,可通过调整内核参数解决:

echo fs.inotify.max_user_watches=1048576 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

max_user_watches参数控制每个用户可监控的最大文件数量,需根据实际监控目录的文件数量设置。事件队列优化可防止因频繁触发同步导致的资源占用:

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,create,delete $SRC | while read file
dorsync -azP --delete $SRC/ $DEST &>/dev/nullecho "[ $(date) ] 同步完成" >> $LOGsleep 2  # 避免频繁触发
done

sleep 2命令在同步后添加延迟,防止因连续变化触发过多rsync进程。

七、rsync安全配置与优化建议

rsync的安全配置至关重要,尤其是在远程同步场景。SSH密钥认证是最推荐的免密同步方式,通过生成密钥对并分发公钥实现:

ssh-keygen -t rsa  # 生成密钥对
ssh-copy-id user@remote  # 分发公钥

此配置避免了密码泄露风险,适合长期运行的同步任务。守护进程模式安全配置需设置密码文件和访问控制:

[module_name]
path = /actual/directory
comment = Module description
read only = yes/no
list = yes/no
auth users = user1,user2
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24
hosts deny = *

密码文件需设置为600权限,确保只有授权用户和IP能访问服务。

传输优化可显著提升rsync的性能。增量传输优化利用--partial--append参数实现断点续传:

rsync -avz --partial --append /large_files/ user@server:/backup/

--partial保留部分传输的文件,--append在断点处继续传输。带宽限制适用于网络资源受限的环境:

rsync -avz --bwlimit=1000 /data/ user@remote:/backup/

--bwlimit=KB/s参数限制传输速率为1000KB/s。性能调优可结合--stats参数查看同步统计信息:

rsync -avz --stats /source/ user@remote:/target/

此参数输出同步的详细统计,包括传输的文件数量、数据量和速度等,便于评估同步性能。

脚本健壮性是自动化同步任务的关键。进程锁防止重复执行导致的资源冲突:

#!/bin/bash
flock -n /tmp/sync.lock rsync -avz /source /target || exit 1

flock命令确保同一时间只有一个rsync进程在运行。错误重试机制可提高同步任务的可靠性:

rsync -avz --retry=3 --wait=10 /source/ user@remote:/target/

--retry=3参数指定最多重试3次,--wait=10参数指定每次重试间隔10秒。日志轮转可避免日志文件占用过多磁盘空间:

0 0 * * * logrotate /etc/logrotate.d/rsync_sync

通过logrotate工具定期压缩和删除旧日志,保持日志管理的整洁。

八、典型应用场景与解决方案

rsync在不同场景下展现出强大的适用性。网站内容同步场景中,rsync可将开发环境的网站内容实时同步到生产服务器:

rsync -avz --delete /var/www/ user@web_server:/var/www/

此命令确保生产服务器上的网站内容与开发环境完全一致。数据库备份场景中,rsync可实现MySQL数据库的增量备份:

rsync -avz --link-dest=/backup/last/ /var/lib/mysql/ /backup/current/

通过硬链接备份,仅存储变化部分,大幅节省存储空间。代码部署场景中,rsync可高效将代码库同步到多台服务器:

rsync -avz --delete /data/project/ user@remote:/var/www/project/

此命令将最新代码同步到生产环境,确保所有服务器运行相同版本的代码。

日志收集与分析场景中,rsync可将多台服务器的日志文件定期同步到中央分析服务器:

0 */1 * * * rsync -avz --delete /var/log/app/ user@central:/logs/app/

此命令每小时同步一次应用日志,便于集中分析和监控。多节点资源同步场景中,rsync可实现多台Web服务器共享静态资源:

rsync -avz --delete /static Resources/ user@web_node{1,2,3}:/var/www/static/

此命令将静态资源同步到所有Web节点,确保内容一致性。实时文件监控场景中,rsync与inotify结合实现即时同步:

inotifywait -mrq -e modify,create,delete /source | while read path action file; dorsync -avz --delete /source/ user@remote:/target/
done

此脚本在文件变化时立即触发同步,确保数据实时一致性。

九、常见问题与解决方案

rsync在实际使用中可能出现多种问题,需针对性解决。权限问题是最常见的障碍,表现为无法写入目标目录:

rsync: receiving file list ... done
rsync: send_files failed to open "/target/file.txt": Permission denied (13)

解决方案包括:确保目标目录权限正确(如chmod 755 /target),或使用--rsync-path="sudo rsync"以管理员权限执行。目录不存在问题表现为rsync: chdir failed错误:

rsync: chdir failed: /target/directory: No such file or directory (2)

解决方案是在同步命令前添加ssh user@remote "mkdir -p /target/directory"确保目录存在,或使用-r参数递归创建目录。SSH连接问题表现为需要输入密码或连接超时:

Permission denied (publickey).
rsync error: unexplained error (code 255) at io.c(226) [sender=3.0.6]

解决方案是配置SSH密钥认证,或通过-e "ssh -o StrictHostKeyChecking=no"跳过指纹确认(需谨慎使用)。inotify资源耗尽表现为tail: inotify资源耗尽错误:

tail: inotify资源耗尽,无法使用inotify机制,回归为polling机制

解决方案是调整内核参数max_user_watches(如设置为1048576)。

同步不完整问题可能由网络中断或文件锁导致:

rsync: connection unexpectedly closed (22 bytes received so far) [sender]
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.0.6]

解决方案是添加--partial参数保留部分传输文件,或使用-P参数显示进度并支持断点续传。大量文件同步缓慢问题可通过调整-z(压缩)和--bwlimit(限速)参数优化:

rsync -avz --bwlimit=500 /data/ user@remote:/backup/

此命令将传输速率限制为500KB/s,并启用压缩提高效率。特殊文件同步失败问题(如设备文件、符号链接)可通过-a(归档模式)参数解决:

rsync -av --delete /source/ /target/

归档模式确保所有文件属性(包括特殊文件)被正确保留和同步。

十、总结与建议

rsync凭借其增量传输、压缩优化和灵活配置等特性,已成为Linux环境下文件同步的首选工具。从基础语法到高级配置,rsync提供了丰富的功能满足各类同步需求。在实际应用中,应根据场景选择合适的同步模式:本地同步适合小规模数据管理,SSH同步适合跨服务器安全传输,守护进程模式适合内网高效同步。定时同步实时同步各有优势:定时同步适合周期性备份,实时同步适合需要即时响应的场景。两者可结合使用,例如每日定时全量备份,辅以inotify实现实时增量同步。

同步频率设置应平衡数据一致性需求和系统资源消耗。高频实时同步适合关键数据(如网站配置),中频同步适合日志备份,低频同步适合全量备份。错误处理与通知是自动化同步任务的关键,可通过日志记录和邮件通知及时发现和解决问题。排除文件与目录可避免同步不必要的数据,提高效率并减少存储占用。进程锁与资源限制确保同步任务稳定运行,防止资源耗尽或重复执行。

对于初次使用rsync的用户,建议从基础命令开始,逐步探索高级参数和配置。对于复杂环境,可编写脚本整合rsync与inotify,实现实时自动化同步。定期维护包括检查同步日志、清理临时文件和更新排除规则,确保同步任务长期稳定运行。通过合理配置和使用rsync,用户可以构建高效、可靠的数据同步系统,大幅提高运维效率和数据安全性。

说明:报告内容由通义AI生成,仅供参考。

相关文章:

rsync命令详解与实用案例

rsync命令详解与实用案例 rsync是一款功能强大的Linux文件同步工具,通过高效的增量传输算法,能够显著减少数据传输量和时间,是备份、镜像和跨平台文件同步的理想选择。其核心价值在于只传输文件的差异部分,而非全量复制&#xff…...

gitee 如何修改提交代码的邮箱

gitee 如何修改提交代码的邮箱 1. 修改全局提交邮箱2. 修改特定仓库的提交邮箱3. 修改已提交记录的邮箱 4. 可能遇到的问题git filter-repo 拒绝执行解决办法方法一:使用 --force 参数 (亲测有效)方法二:创建一个全新的克隆仓库 注…...

MATLAB画一把伞

% 伞的参数num_ribs 5; % 伞骨数量修改为5R 1; % 伞的半径height 0.5; % 伞的高度handle_length 2; % 伞柄长度semicircle_radius 0.26; % 伞柄末端半圆的半径% 生成伞叶网格theta linspace(0, 2*pi, 100);phi linspace(0, pi/2, 50);[Theta, Phi] meshgrid(theta, phi…...

vue 实现文件流下载功能 前端实现文件流下载

首先场景就是,一般的文件下载是通过后端返回的文件地址下载文件,但当后端返回的是文件流的时候,下载要做特殊处理 案例截图: 下载成功: 代码处理,首先就是要在接口封装的地方加上 在 Vue 前端开发中实现文件流下载与普通文件下载的核心区别在于 数据处理方式。文件流…...

[Android]导航栏中插入电源菜单

1. 新增 frameworks/base/packages/SystemUI/res/layout/power.xml <?xml version"1.0" encoding"utf-8"?> <com.android.systemui.navigationbar.buttons.KeyButtonView xmlns:android"http://schemas.android.com/apk/res/android"…...

VSCode Verilog环境搭建

VSCode Verilog环境搭建 下载Iverilog安装Iverilog验证安装VS Code安装插件 下载Iverilog 官网下载Iverilog 安装Iverilog 一定要勾选这两项 建议勾选这两项 验证安装 运行Windows PowerShell输入命令&#xff1a;iverilog输入命令&#xff1a;Get-Command gtkwave …...

Hadoop 和 Spark 生态系统中的核心组件

通过jps命令&#xff0c;可以看到如下进程名&#xff0c;请解释一下它们各自是哪个命令产生的&#xff0c;有什么作用&#xff1f;一、Worker 1.来源&#xff1a;Spark 集群的 工作节点&#xff08;Worker Node&#xff09;&#xff0c;由 start-worker.sh 启动 2.作用&#…...

MySQL多表操作

熟能生巧&#xff0c;全部代码在最后&#xff01;&#xff01;&#xff01; 一、多表关系 一对一关系、一对多关系、多对多关系 注意多对多关系必须有中间表进行关联 多对多的关系就相当于是两个一对多关系 二、创建外键约束 专门用于多表操作的一种约束方式 控制的那个表…...

WPF TextBlock控件性能优化指南

WPF TextBlock控件性能优化指南 1. 引言 TextBlock作为WPF中最基础且使用最广泛的文本显示控件&#xff0c;其性能优化对整个应用程序的响应速度和资源占用有着重要影响。尽管TextBlock是一个轻量级控件&#xff0c;但在大型应用或需要显示大量文本的场景中&#xff0c;不恰当…...

DotNet 入门:(一) 环境安装

一、前言 本想用 Go 语言实现一个通过小爱同学操作电脑的&#xff0c;比如我对着手机说打开音乐&#xff0c;或调小音乐&#xff0c;电脑能做相应的处理。奈何我一时间没看懂&#xff0c;就想着用.Net 来试一下&#xff0c;于是就有了下面这篇文章。 二、安装.Net 环境 1. 下…...

初识Redis · 分布式锁

目录 前言&#xff1a; 分布式锁 setnx lua脚本和看门狗 redlock算法 Redlock 的加锁流程&#xff08;5 步&#xff09; 前言&#xff1a; 到了分布式锁这一章之后&#xff0c;我们首先能联想到的问题就是线程安全的问题&#xff0c;线程安全指的是多个线程在并发执行的…...

使用 OpenCV 实现图像中心旋转

在图像处理中&#xff0c;围绕中心点旋转图像是一个常见的需求。无论是为了数据增强、视觉效果&#xff0c;还是图像对齐&#xff0c;旋转图像都是一项基础且重要的操作。本文将详细介绍如何使用 OpenCV 实现围绕图像中心旋转的功能&#xff0c;并深入探讨其背后的数学原理。 一…...

云钥科技红外短波工业相机

云钥科技的红外短波相机是一款基于短波红外&#xff08;SWIR&#xff0c;波长范围约1-3微米&#xff09;技术的成像设备&#xff0c;专为高精度检测、全天候成像及特殊场景应用设计。以下从核心技术、性能参数、应用场景及产品优势等方面进行详细介绍&#xff1a; ​​一、核心…...

npm如何安装pnpm

在 npm 中安装 pnpm 非常简单,你可以通过以下步骤完成: 1. 使用 npm 全局安装 pnpm 打开终端(命令行工具),运行以下命令: npm install -g pnpm2. 验证安装 安装完成后,可以检查 pnpm 的版本以确保安装成功: pnpm --version如果正确显示版本号(如 8.x.x),说明安…...

GTC Taipei 2025 医疗域前瞻:从AI代理到主权生态,解码医疗健康与生命科学的未来图景

引言 2025年,全球医疗健康领域正经历一场由人工智能、机器人技术与分布式计算驱动的范式转移。随着NVIDIA及其生态伙伴在GTC Taipei 2025大会上的深度布局,医疗行业的核心趋势愈发清晰:AI代理程序(Digital AI Agents)赋能临床协作、医疗大数据与精准医学加速落地、医学影…...

【AI学习】李宏毅新课《DeepSeek-R1 这类大语言模型是如何进行「深度思考」(Reasoning)的?》的部分纪要

针对推理模型&#xff0c;主要讲了四种方法&#xff0c;两种不需要训练模型&#xff0c;两种需要。 对于reason和inference&#xff0c;这两个词有不同的含义&#xff01; 推理时计算不是新鲜事&#xff0c;AlphaGo就是如此。 这张图片说明了将训练和推理时计算综合考虑的关系&…...

npm打包内存不足- JavaScript heap out of memory

直接贴出报错信息 <--- Last few GCs --->[30904:0000010F60FE58E0] 22090 ms: Scavenge 2037.4 (2069.4) -> 2036.4 (2074.2) MB, 2.5 / 0.0 ms (average mu 0.228, current mu 0.216) allocation failure [30904:0000010F60FE58E0] 22101 ms: Scavenge 2…...

【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动

文章目录 1. 开始啦!2. 第一部分:设计高效且安全的工具3. 第二部分:定义工具蓝图——参数、输出与约束条件4. 第三部分:弥合差距:LLM 兼容性(函数调用)5. 第四部分:实施与测试的最佳实践1. 开始啦! 在前几章中,我们将工具介绍为 AI 模型在 MCP 客户端引导下向 MCP 服…...

开发iOS App时,我常用的一款性能监控小工具分享

开发iOS App时&#xff0c;我常用的一款性能监控小工具分享 最近在做一个iOS应用的性能优化&#xff0c;频繁遇到内存泄露、界面卡顿和网络请求超时的问题。平时用Xcode Instruments虽然专业&#xff0c;但流程繁琐&#xff0c;临时排查问题不够灵活。 于是开始找有没有轻量一…...

如何防止 ES 被 Linux OOM Killer 杀掉

当 Linux 系统内存不足时&#xff0c;内核会找出一个进程 kill 掉它释放内存&#xff0c;旨在保障整个系统不至于崩溃。如果 ES 按照最佳实践去实施部署&#xff0c;会保留一半的内存&#xff0c;不至于发生此类事情。但事情总有例外&#xff0c;有的朋友可能 ES 和其他的程序部…...

Windows权限与icacls命令详解

在Windows操作系统中&#xff0c;权限管理是确保系统安全和资源访问控制的核心机制。特别是在使用NTFS&#xff08;New Technology File System&#xff09;文件系统的环境中&#xff0c;访问控制列表&#xff08;ACL&#xff09;用于定义哪些用户或组可以对文件、文件夹或其他…...

5.4.2 MVVM例2-用户控件的使用(水在水管中流动的实例)

本文以一个例子介绍用户控件的使用(UserControl),下图所示: 一、主要技术点 1.MainViewModel使用CommunityToolkit.Mvvm 这个Nuget包 2.LinearGradientBrush使用,下面代码可以产生如下的效果 <LinearGradientBrush x:Key="HorizontalBackground" …...

PHP代码-服务器下载文件页面编写

内部环境的服务资源下载页面有访问需求&#xff0c;给开发和产品人员编写一个简洁的下载页面提供资源下载。直接用nginxphp的形式去编写了&#xff0c;这里提供展示index.php文件代码如下&#xff1a; <?php // 配置常量 define(BASE_DIR, __DIR__); // 当前脚本所在目录作…...

51单片机快速入门之 SPI通信 2025年4月29日09:26:32

SPI通信 : SPI&#xff08;Serial Peripheral Interface&#xff09;通信是一种同步串行数据传输协议&#xff0c;主要用于嵌入式系统内部设备之间的通信。它由Motorola公司在2000年提出&#xff0c;广泛应用于微控制器、传感器、存储设备等之间的数据传输。 SPI通信的主要特点…...

SpringMVC再复习1

一、三层架构 表现层&#xff08;WEB 层&#xff09; 定义 &#xff1a;是应用程序与客户端进行交互的最外层&#xff0c;主要负责接收用户的请求&#xff0c;并将处理结果显示给用户。 作用 &#xff1a;在 Spring MVC 中&#xff0c;表现层通常采用 MVC 设计模式来构建。 技…...

音视频之H.265/HEVC网络适配层

H.265/HEVC系列文章&#xff1a; 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 5、音视频之H.265/HEVC量化 6、音视频之H.265/HEVC环路后处理 7、音视频之H.265/HEVC熵编…...

01_微服务常见问题

文章目录 微服务常见问题一、常见问题概要一、问题详解1.1 服务拆分1.2 服务通信1.3 服务注册与发现1.4 服务治理1.5 数据一致性1.6 故障隔离与容错处理1.7 数据库设计1.8 性能测试与调优 微服务常见问题 一、常见问题概要 ‌服务拆分‌&#xff1a;如何合理地拆分服务&#…...

Python在自动驾驶仿真环境中的应用:构建智能驾驶的虚拟世界

Python在自动驾驶仿真环境中的应用:构建智能驾驶的虚拟世界 引言 随着自动驾驶技术的迅速发展,仿真环境的构建变得愈发重要。传统的测试方法依赖物理车辆和道路进行验证,但这种方式不仅成本高昂,还存在一定的风险。为了加速自动驾驶技术的研发,仿真环境成为了一个必不可…...

【统计方法】交叉验证:Resampling, nested 交叉验证等策略 【含R语言】

Resampling (重采样方法) 重采样方法是从训练数据中反复抽取样本&#xff0c;并在每个&#xff08;重新&#xff09;样本上重新调整模型&#xff0c;以获得关于拟合模型的附加信息的技术。 两种主要的重采样方法 Cross-Validation (CV) 交叉验证 &#xff1a; 用于估计测试误…...

海外App数据隐私架构实战:构建GDPR、CCPA合规的全栈解决方案

一、隐私合规的架构范式转变 从“数据收集”到“数据最小化”传统模式&#xff1a;尽可能收集数据 → 导致合规风险隐私原生模式&#xff1a;默认不收集 → 按需申请 → 自动过期kotlin// Android权限动态申请示例&#xff08;GDPR兼容&#xff09; val request PermissionRe…...

Prometheus监控

1、docker - prometheusgrafana监控与集成到spring boot 服务_grafana spring boot-CSDN博客 2、【IT运维】普罗米修斯基本介绍及监控平台部署&#xff08;PrometheusGrafana&#xff09;-CSDN博客 3、Prometheus监控SpringBoot-CSDN博客 4、springboot集成普罗米修斯-CSDN博客…...

Vue3 Echarts 3D圆形柱状图实现教程以及封装一个可复用的组件

文章目录 前言一、实现原理二、series ——type: "pictorialBar" 简介2.1 常用属性 三、代码实战3.1 封装一个echarts通用组件 echarts.vue3.2 首先实现一个基础柱状图3.3 添加上下2个椭圆面3.4 进阶封装一个可复用的3D圆形柱状图组件 总结 前言 在前端开发的数据可视…...

洛谷P12238 [蓝桥杯 2023 国 Java A] 单词分类

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] Copy from luogu. [Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis] 既然都是字符串前缀的问题了&#xff0c;那当然首先就应该想到 Trie \text{Trie} Trie 树。 我们可…...

【3D基础】顶点法线与平面法线在光照与PBR中的区别与影响

顶点法线与平面法线在光照与PBR中的区别与影响 在3D图形学中&#xff0c;法线&#xff08;Normal&#xff09;是影响光照计算、表面细节表现和渲染质量的核心参数之一。法线用于描述一个表面或顶点的朝向&#xff0c;直接关系到光的反射与分布&#xff0c;从而影响最终像素的颜…...

jmeter-Beashell获取http请求体json

在JMeter中&#xff0c;使用BeanShell处理器或BeanShell Sampler来获取HTTP请求体中的JSON数据是很常见的需求。这通常用于在测试计划中处理和修改请求体&#xff0c;或者在响应后进行验证。以下是一些步骤和示例代码&#xff0c;帮助你使用BeanShell来获取HTTP请求体中的JSON数…...

为网页LOGO视频增加电影质感表现

为网页LOGO视频增加电影质感表现 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 为网页LOGO视频增加电影质感表现前几天,一个朋友开了一家烤肉店,给我发来了烤肉店的宣传视频,我…...

精益数据分析(32/126):电商指标优化与搜索策略解析

精益数据分析&#xff08;32/126&#xff09;&#xff1a;电商指标优化与搜索策略解析 在创业和数据分析的探索之旅中&#xff0c;每一次深入学习都能为我们带来新的启发和成长。今天&#xff0c;我们继续秉持共同进步的理念&#xff0c;深入研读《精益数据分析》&#xff0c;…...

​【空间数据分析】缓冲区分析--泰森多边形(Voronoi Diagram)-arcgis操作

泰森多边形&#xff08;Voronoi Diagram&#xff09;&#xff1a;根据一组输入点生成多边形&#xff0c;使得每个多边形内的任意位置到其关联点的距离最近。 多边形之间无重叠&#xff0c;全覆盖研究区域。 边界是相邻两点连线的垂直平分线。 实验操作&#xff1a; 使用 Cre…...

JavaScript高级进阶(五)

操作节点属性 设置属性&#xff08;先找属性再操作&#xff09; setAttribute()方法添加指定的属性&#xff0c;并为其赋指定的值 语法&#xff1a; element.setAttribute(attributename/属性名,attributevalue/属性值) 例: <style> .box{ width: 200px; height: 200p…...

WPF之TextBlock控件详解

文章目录 1. TextBlock控件介绍2. TextBlock的基本用法2.1 基本语法2.2 在代码中创建TextBlock 3. TextBlock的常用属性3.1 文本内容相关属性3.2 字体相关属性3.3 外观相关属性3.4 布局相关属性 4. TextBlock文本格式化4.1 使用Run元素进行内联格式化4.2 其他内联元素 5. 处理长…...

串口通信协议

什么是串口通信&#xff1f; 串口通信是将数据在一条数据线上传输。 串口通信的特点是传输线少&#xff08;相对于并行通信&#xff09;&#xff0c;长距离传输的成本低&#xff0c;但数据的传送控制比并行通信复杂。 常见的串行通信接口包括&#xff1a;USB&#xff0c;RS-…...

9.idea中创建springboot项目

9. idea中创建springboot项目 步骤 1&#xff1a;打开 IntelliJ IDEA 并创建新项目 启动 IntelliJ IDEA。在欢迎界面&#xff0c;点击 New Project&#xff08;或通过菜单栏 File > New > Project&#xff09;。 步骤 2&#xff1a;选择 Maven 项目类型 在左侧菜单中…...

详解大语言模型生态系统概念:lama,llama.cpp,HuggingFace 模型 ,GGUF,MLX,lm-studio,ollama这都是什么?

llama&#xff0c;llama.cpp&#xff0c;HuggingFace 模型 &#xff0c;GGUF&#xff0c;MLX&#xff0c;lm-studio&#xff0c;ollama这些名词的概念给个详细的解释&#xff0c;彼此什么关系&#xff1f;是不是头很晕&#xff1f; 详解大语言模型生态系统概念 基础模型与架构…...

如何系统学习音视频

学习音视频技术涉及多个领域&#xff0c;包括音频处理、视频处理、编码解码、流媒体传输等。 第一阶段&#xff1a;基础知识准备 目标&#xff1a;掌握音视频学习所需的计算机科学和数学基础。 计算机基础 学习计算机网络基础&#xff08;TCP/IP、UDP、HTTP、RTSP等协议&#…...

elementui里的el-tabs的内置样式修改失效?

1.问题图 红框里的是组件的内置样式&#xff0c;红框下的是自定义样式 2.分析 2.1scoped vue模板编译器在编译有scoped的stye标签时&#xff0c;会生成对应的postCSS插件&#xff0c;该插件会给每个scoped标记的style标签模块&#xff0c;生成唯一一个对应的 data-v-xxxhash…...

Webshell管理工具的流量特征

目录 一、常见Webshell工具流量特征 1. ​​中国菜刀&#xff08;Chopper&#xff09;​​ 2. ​​冰蝎&#xff08;Behinder&#xff09;​​ 3. ​​哥斯拉&#xff08;Godzilla&#xff09;​​ 4. ​​蚁剑&#xff08;AntSword&#xff09;​​ 5. ​​C99 Shell​​…...

61.微服务保姆教程 (四) Gateway---SpringCloud微服务网关组件

Gateway—SpringCloud微服务网关组件 一、Spring Cloud Gateway简介 1.为什么要用Gateway? 在微服务架构中,通常一个系统会被拆分为多个微服务,微服务之间的调用可以用OpenFeign,但面对这么多微服务客户端调用会遇到哪些问题呢? 每个服务都需要鉴权、限流、跨域访问、权…...

问答:C++如何通过自定义实现移动构造函数和移动赋值运算符来实现rust的唯一所有权?

今天,我就带你深入C++的移动语义,用自定义的移动构造函数和移动赋值运算符,硬核模拟Rust的唯一所有权。不仅有干货代码,还会手把手讲明白,保证你看完就能上手。准备好了吗?咱们这就开干! 先搞懂Rust的“独家秘籍” Rust的唯一所有权,简单来说,就是一个资源只能有一个…...

MODSIM选型指南:汽车与航空航天企业如何选择仿真平台

1. 引言 在竞争激烈的汽车与航空航天领域&#xff0c;仿真技术已成为产品研发不可或缺的环节。通过在设计阶段验证概念并优化性能&#xff0c;仿真平台能有效缩短开发周期并降低物理样机制作成本。 MODSIM&#xff08;建模与仿真&#xff09;作为达索系统3DEXPERIENCE平台的核…...

扣子流程图批量导入飞书多维表格

文章目录 整体结构分步骤进行处理1. 程序代码处理2. 多维表格配置 整体结构 整个代码块结构如下&#xff1a; 首先&#xff0c;我们从其他流程中拿到一个数据列表&#xff0c;通过一个循环体&#xff0c;将每一个部分的内容都通过python代码整理后&#xff0c;使用【插件】的…...