shell脚本---实现es备份导出到本地形成json文件

ElasticSearch - 抓取ES数据到本地文件 使用此脚本可以将ES上的数据抓取到本地文件,因为使用ES scroll实现,所以不受限于limit 10000笔影响 需要提前安裝 jq command Linux 安裝 : sudo apt install jq Centos 安裝 : sudo yum install jq MacOS 安裝 : brew install jq #!/bin/bash # ----------... 阅读详情

项目需求:备份es数据,并落实到本地形成文件
脚本实现:定时备份es数据,定期删除备份文件,自定义文件名称、版本号,可以指定备份索引,也可以备份全部索引
使用esdump来进行备份:
ElasticDump是一个ElasticSearch的数据导入导出开源工具包,方便使用。

官方地址:官方地址:https://github.com/taskrabbit/elasticsearch-dump

安装方式如下:
安装NodeJS
下载源码:wget http://nodejs.org/dist/v0.10.32/node-v0.10.32-linux-x64.tar.gz
解压:tar xvf node-v0.10.22-linux-x64.tar.gz
配置环境变量:
在/etc/profile文件新增:

export NODE_HOME=/home/node-v0.10.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

执行 source /etc/profile 命令让环境变量设置生效
测试:在终端输入node -v如果有版本信息输出,则说明安装成功

安装NPM
curl -L https://npmjs.org/install.sh | sh

安装ElasticDump
npm install elasticdump -g
elasticdump
脚本内容:

#!/bin/bash
#全备方式
#作者:lcm_linux
#时间:2019.08.06
. /etc/profile
. ~/.bash_profile
source /etc/profile    #加载系统环境变量
source ~/.bash_profile  #加载用户环境变量
#set -o nounset       #引用未初始化变量时退出
#set -o errexit      #执行shell命令遇到错误时退出
#es备份存储路径,根据需要修改
backup_path="/data1/es_data/es_bak/data"
backup_log_path="/data1/es_data/es_bak/logs"
#获取当天日期
date=$(date +%Y-%m-%d_%H-%M-%S)
del_date=$(date +%Y-%m)
#远程访问ES集群的IP,需要按需修改
export_ip="192.168.162.222"
#远程访问ES集群的端口,内部通信,一般不需要修改
export_port="9200"
#备份输出的日志信息
backup_log="${backup_log_path}/es_export_${date}.log"
#backup_error_log="${backup_path}/es_export_error_${date}.log"
day=0
#获取索引列表
#定义文件1
list1=${backup_path}/es_export_list1.txt
#定义文件2
list2=${backup_path}/es_export_list2.txt
#定义文件3
list3=${backup_path}/es_export_list3.txt

function create_list(){
#获取除了 swordfish 以外的索引名称,可根据具体修改
#curl http://${export_ip}:${export_port}/_cat/indices |grep -v "swordfish" > ${list1}
#获取匹配到的所有索引名称 指定索引 grep -i "xxx" 满足任意条件过滤: grep -E "aaa|bbb|ccc*" 带*的要放在最后
curl http://${export_ip}:${export_port}/_cat/indices | grep -E "k007_dw_net_*" > ${list1}
cat ${list1} | awk '{print $3 "\t\t" $4}' > ${list2}
column -t ${list2} >  ${list3}
cat ${list3} | awk '{print $1}' | sort >> ${backup_path}/list.txt
rm -rf ${list1} ${list2} ${list3}
#打印行数
row=$(cat ${backup_path}/list.txt | wc -l)

echo "=========${date}:索引目录导出完成:此时行数:$row=======" >> ${backup_log}


}

#创建备份路径
if [[ ! -d ${backup_path}/${date} ]];then
  mkdir -p {$backup_path/${date},$backup_log_path}
else
  echo "========${date}:文件夹已经存在=======" >> ${backup_log}
fi

#清理备份路径下没有备份完全的文件夹
for f in `ls $backup_path`;
do
    if [[ $f = ${del_date}* ]]; then
        rm -rf $backup_path/$f
    fi
done

#创建备份路径
if [[ ! -d ${backup_path}/${date} ]];then
  mkdir -p {$backup_path/${date},$backup_log_path}
else
  echo "========${date}:文件夹已经存在=======" >> ${backup_log}
fi

#删除之前的备份
if [[ -f $backup_path/*.tar.gz ]];then
	find $backup_path/*.tar.gz -type f -mtime +$day -exec rm -rf {} \; > /dev/null 2>&1
fi

#===============开始导出数据=======================
echo "导出开始,结果查看 $backup_log"
echo "=========${date}:正在导出索引目录=======" >> ${backup_log}
#清理之前的索引列表文件
if [[ ! -f "${backup_path}/list.txt" ]]; then
	echo "正在创建索引list"
	create_list
else
	echo "正在删除旧的list"
	rm -f ${backup_path}/list.txt
	echo "删除完成,正在创建索引list"
	create_list
fi
sleep 5


#============检查是否存在elasticdump命令=================
command -v elasticdump >/dev/null 2>&1 || { echo >&2 "环境中没有检测到elasticdump,请确认是否存在,备份已中止!"; exit 1; }

sleep 5
echo "=========${date}:开始导出索引文件======="
echo "=========${date}:开始导出索引文件=======" >> ${backup_log}
        while read line
 	do
	elasticdump --input=http://${export_ip}:${export_port}/${line} --output="${backup_path}/${date}/"${line}_settings.json --type=settings --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }'
        sleep 5
	elasticdump --input=http://${export_ip}:${export_port}/${line} --output="${backup_path}/${date}/"${line}_analyzer.json --type=analyzer --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }'
        sleep 5
	elasticdump --input=http://${export_ip}:${export_port}/${line} --output="${backup_path}/${date}/"${line}_mapping.json --type=mapping --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }' 
        sleep 5
	elasticdump --input=http://${export_ip}:${export_port}/${line} --output="${backup_path}/${date}/"${line}_data.json --type=data --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }'
  if [[ $? == 0 ]];then
    cd $backup_path/${date}
    size1=$(du $backup_path/${date}/${line}_mapping.json -sh | awk '{print $1}')
    size2=$(du $backup_path/${date}/${line}_data.json -sh | awk '{print $1}')
    size3=$(du $backup_path/${date}/${line}_settings.json -sh | awk '{print $1}')
    size4=$(du $backup_path/${date}/${line}_analyzer.json -sh | awk '{print $1}')
    echo "导出时间:${date} 导出方式:elasticdump 导出索引:${line} mapping大小:$size1 data大小:$size2 settings大小:$size3 analyzer大小:$size4 导出状态:成功!" >>$backup_log
  else
    cd $backup_path/${date}
    echo "导出时间:${date} 导出方式:elasticdump 导出索引:${line} 导出状态:失败,请查看日志." >>$backup_log
  fi

  done < ${backup_path}/list.txt


  cd $backup_path
  tar zcpvf elasticdump_$date.tar.gz $date
  rm -rf $backup_path/$date
echo "导出结束,结果查看 $backup_log"
du elasticdump_$date.tar.gz -sh | awk '{print "文件:" $2 ",大小:" $1}'
echo "==========${date}:导出索引文件完成==========" >>$backup_log
echo "==========${date}:导出索引文件完成=========="

配置定时任务:

55 16 * * * /bin/bash /opt/script/es_shell/es_export.sh

附上恢复脚本A:
脚本实现:根据上述备份脚本内容所产生的索引列表list,进行对list中索引数据恢复
脚本内容:

#!/bin/bash

#作者:lcm_linux
#时间:2019.08.06
#此导入脚本要结合导出脚本es_export.sh产生的es列表list.txt来一起使用,最好将两个脚本放在同一个目录下
source /etc/profile    #加载系统环境变量
source ~/.bash_profile  #加载用户环境变量
set -o nounset       #引用未初始化变量时退出
set -o errexit      #执行shell命令遇到错误时退出
date=$(date +%Y-%m-%d_%H-%M-%S)

function download(){
        while read line
        do
             elasticdump  --input=${1}/${line}_settings.json --output=http://${2}/${line} --type=settings --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }' 
                sleep 5
             elasticdump  --input=${1}/${line}_analyzer.json --output=http://${2}/${line} --type=analyzer --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }' 
                sleep 5
             elasticdump  --input=${1}/${line}_mapping.json --output=http://${2}/${line} --type=mapping --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }' 
                sleep 5
             elasticdump --input=${1}/${line}_data.json --output=http://${2}/${line} --type=data --searchBody '{"query": { "match_all": {} }, "stored_fields": ["*"],"_source": true }' 
        done < list.txt
}


function check(){

        if [ `npm ls elasticdump >/dev/null && echo $?` != 0 ];then
                npm install elasticdump
                cp /node_modules/elasticdump/bin/elasticdump /usr/sbin/
                echo "elasticdump 安装完成..."
        else
                echo "elasticdump 已经正常安装!!"
        fi
}


read -p "确定elasticdump是否正确安装?(y/n):" judge
if [ $judge = 'y' -o $judge = 'Y' ];then
        read -p "请输入es的数据存储的位置 : " floder
        read -p "请输入es集群的IP和端口,eg:172.16.3.139:9200 : " IPinfo

        download ${floder} ${IPinfo}

else
        echo "检查安装并且开始下载任务"
        check
        read -p "请输入es的数据存储的位置 : " floder
    	read -p "请输入es集群的IP和端口,eg:192.168.162.222:9200 : " IPinfo
        download ${floder} ${IPinfo}
fi

附上脚本B:
脚本实现:根据上述备份脚本所产生的索引文件list,进行对es中索引的删除
脚本内容:

#!/bin/bash
while read line
do
  curl -X DELETE http://192.168.162.222:9200/${line}
done < list.txt

总结
1)如果不导入analyzer会怎么样?
我试过如果只导入data和mapping,则数据会导入,mapping会发生变化,最终的结果没有分词的效果。
2)如果不导入mapping也不会有分词的效果。
3)顺序导入最好按照:analyzer,setting,mapping和data这个顺序来,防止出现分词失效的结果。导出顺序没有要求。

Shell 脚本查看ElasticSearch 欢迎关注【无量测试之道】公众号,回复【领取资源】, Python编程学习资源干货、 Python+Appium框架APP的UI自动化、 Python+Selenium框架Web的UI自动化、 Python+Unittest框架API自动化、 资源和代码 免费送啦~ 文章下方有公众号二维码,可直接微信扫一扫关注即可。 今天的分享是关于如何使用Shell 脚本轻松搞定ES 的信息查询,通过不同的参数传入来获取相应的信息反馈。 相应的代码如下: #!/bin/bash username="admin 阅读详情

相关推荐

Mac微信聊天记录本地化全攻略:自动化备份与可检索归档方案

数据备份与本地化存储是数字资产管理的基础实践,其核心原理在于将云端或应用内的私有数据转化为开放、可控的本地副本。通过解析应用数据库结构或利用官方/第三方接口,可以实现数据的提取与格式转换,这一过程的技术价值在于打破平台锁定,确保数据的长期可访问性与所有权。在实际应用场景中,即时通讯工具的聊天记录因其包含重要的文字、文件和媒体内容,成为本地化备份的典型需求。本文聚焦于Mac平台,针对微信这一高频应用,详细阐述了如何利用WeChatExporter等命令行工具,将加密的SQLite数据库中的聊天记录,自动化导出

weixin_30859423的博客 437

es数据迁移_Shell获取ES3天的索引列表进行迁移操作

3天前所有的历史索引操作方法生产环境ES集群已切换为冷热架构,日志保留最近3天的索引在ssd节点就可以了,超过3天的索引可以迁移到warm节点了,如何通过shell脚本去实现呢?当前我只有一个日志索引需要这样操作,索引的时间戳是2020.11.17这样的时间格式为结尾,先通过命令获取索引的时间戳,并按照时间由近到远排序curl -s http://es:9200/_cat/indices...

weixin_39924779的博客 382

VulnWhisperer:自动化漏洞数据管道,实现扫描报告统一管理与可视化

在安全运维和渗透测试领域,漏洞扫描是基础且关键的环节,但不同扫描工具生成的报告格式各异,数据分散,导致漏洞管理效率低下。其核心原理在于通过标准化解析引擎,将Nessus、OpenVAS、Nexpose等主流扫描器的原始输出(XML、CSV等)转化为统一的结构化数据。这一技术价值在于打通了漏洞发现与风险处置的管道,实现了数据的集中化与规范化。在应用场景上,它尤其适用于需要将多源漏洞数据聚合分析、构建统一可视化仪表盘的安全团队。通过将标准化后的数据推送至Elasticsearch等后端,结合Kibana可快速构

aoe41606的博客 454

shell脚本导出es中的数据

#!/bin/bash string="aa.com bb.com" array=(${string// / }) for var in ${array[@]} do echo $var curl -XGET "http://192.168.8.23:9200/poc/showlog/_search" -d' { "query": { "match": { ...

bankq的博客 1646

Elasticsearch数据安全实战:传输加密与静态加密配置指南

数据加密是信息安全领域的核心基础技术,其原理是通过密码学算法将明文数据转换为不可读的密文,确保数据在存储和传输过程中的机密性与完整性。在分布式搜索与分析场景中,数据传输安全和静态数据保护具有重要技术价值,能够有效防止数据泄露、篡改和未授权访问。Elasticsearch作为广泛应用的实时搜索与分析引擎,其内置的传输层加密功能通过TLS/SSL协议为节点间与客户端通信提供安全保障,而索引级静态数据加密则为存储在磁盘上的敏感数据提供额外防护层。本文聚焦于Elasticsearch数据安全实践,详细解析了证书生成

weixin_30855761的博客 467

Grok Build终端AI:深度集成Shell的工程化生产力工具

终端AI不是简单的命令行聊天机器人,而是基于Unix哲学构建的可审计、可脚本化、可管道化的智能代理。其核心在于将大模型能力与shell环境变量、进程状态、Git上下文、文件系统权限等底层机制深度耦合,实现意图解析→安全策略校验→结构化执行→原子化反馈的闭环。相比通用AI助手,它牺牲文学创作与数学推理能力,专注提升Shell语法理解、Git工作流建模和管道链调试等工程场景响应质量。适用于DevOps、SRE及终端原住民开发者,尤其在CI/CD排障、K8s运维、TypeScript重构等高频终端任务中展现确定性

ctk87443的博客 475

使用es-dump迁移数据

使用es-dump迁移数据【超详细】

Dong_zhilin的博客 465

CentOS 8 安装 Elasticsearch 的四大系统级断点与硬核排障指南

Elasticsearch 是一个基于 Lucene 构建的分布式搜索与分析引擎,其稳定运行高度依赖底层操作系统环境。在 CentOS 8 这一采用 systemd、dnf modular 仓库、firewalld 默认 REJECT 策略及强化 SELinux 的现代发行版中,Java 运行时兼容性、内核参数(如 vm.max_map_count)、文件系统 d_type 支持等基础配置极易成为隐性故障源。尤其当部署于 WSL2 或 VMware 虚拟化环境时,systemd 行为差异、网卡驱动缺陷与 c

412

Elasticsearch从零到一:环境搭建、核心概念与实战操作指南

全文搜索引擎是现代数据处理架构中的核心组件,它通过倒排索引技术实现海量数据的快速检索与分析。其工作原理是将文档内容分词并建立词项到文档的映射关系,从而支持高效的模糊匹配和相关性排序。这项技术的核心价值在于能够将非结构化的文本数据转化为可搜索、可分析的结构化信息,极大地提升了数据查询的灵活性和效率。在应用场景上,全文搜索引擎广泛应用于日志分析、商品搜索、业务监控和用户行为洞察等领域,成为大数据生态中不可或缺的一环。本文聚焦于Elasticsearch这一主流开源搜索引擎,针对新手常见问题如windows启动e

weixin_33851604的博客 351

从零构建传讯蜜罐:基于Cowrie与ELK的主动防御实践

在网络安全领域,蜜罐(Honeypot)是一种主动防御技术,其核心原理是通过部署伪装成真实系统或服务的诱饵,吸引并记录攻击行为,从而收集威胁情报。这项技术的价值在于能够以极低的误报率捕获真实的攻击手法、工具和意图,为安全态势感知提供高保真数据源。在实际工程应用中,蜜罐常被用于监控网络扫描、暴力破解、漏洞利用等常见攻击场景,并可与SIEM、威胁情报平台联动,提升整体安全防御的主动性和预见性。本文以广泛使用的**Cowrie蜜罐**为例,结合**ELK Stack**日志分析平台,详细演示如何从环境准备、部署配

weixin_33957648的博客 402

OpenClaw:本地智能体技能中枢的原理与生产实践

技能中枢(Skill Orchestrator)是现代AI工作流中连接大模型输出与本地执行的关键中间件,其核心在于标准化技能封装、声明式依赖管理与安全沙箱调度。不同于传统CLI工具或插件系统,它强调可验证的执行契约(skill.yaml + main + test)、离线可运行性及跨语言支持(Python/Shell/Rust/Docker)。技术价值体现在解耦LLM推理与动作执行、提升自动化健壮性、保障企业数据不出域。典型应用场景包括本地大模型路由、文件同步看门狗、日志异常检测、Excel业务校验等。本文

382

C++ 基于正倒排索引的 Boost 搜索引擎

这篇文章介绍了一个基于C++的Boost库文档站内搜索引擎的实现过程。主要内容包括: 项目背景 实现一个类似百度但规模较小的站内搜索引擎,针对Boost库官网文档进行搜索。 搜索引擎原理 抓取:下载Boost官网HTML文档 处理:去除HTML标签,提取正文内容 索引: 正排索引:文档ID到文档内容 倒排索引:关键词到文档ID列表 排序:根据关键词权重排序结果 技术实现 使用Boost文件系统遍历文档 正排索引存储文档标题、内容和URL 倒排索引使用cppjieba进行中文分词 通过cpp-httplib搭

wefg1的博客 741

【OpenClaw从入门到精通】第91篇:安全与隐私最佳实践:本地部署的防护措施

本文聚焦本地部署AI Agent的安全防护,基于真实踩坑经验,从API鉴权与RBAC、执行沙箱、敏感数据脱敏与日志过滤、合规审计与事件追踪四个维度,拆解15个可复用的防护策略。包括使用JWT+短期令牌、工具级RBAC权限模型、Docker+seccomp沙箱隔离、正则与SpellNLP脱敏、ELK审计平台搭建等完整代码与配置。同时梳理7个常见踩坑案例及性能对比数据,帮助读者在理解安全理论后直接落地到生产环境。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 241

MongoDB备份恢复迁移:Ubuntu 20.04生产环境避坑指南

MongoDB备份不是简单复制文件,而是涉及WiredTiger引擎快照、oplog日志、系统级权限与服务生命周期的综合工程。其核心原理在于利用MVCC多版本并发控制实现时间点一致性,通过mongodump的--archive和--oplog参数捕获原子快照与增量操作,再经mongorestore完成状态重建。技术价值体现在保障RPO(恢复点目标)<5秒、支持跨版本迁移、规避文件系统级不一致风险。典型应用场景包括电商订单库灾备、Ubuntu 20.04 LTS环境升级迁移、以及基于systemd的自动化备份

weixin_30254435的博客 501

用Python实现单层感知器:5分钟搞定逻辑与/或/异或分类(附避坑指南)

本文通过Python代码实战,详细讲解了单层感知器的核心原理与实现步骤,5分钟内即可完成逻辑与、或运算的分类任务。文章深入剖析了单层感知器的能力边界,解释了其无法解决异或(XOR)等线性不可分问题的根本原因,并提供了学习率设置、权重初始化等关键避坑指南,帮助初学者直观理解神经网络的基础。

ttt77的博客 1084

快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)

一、上模块 二、功能分析 l 芯片:CH340N l 输入接口:USB、TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源、TX、RX 三、CH340x芯片 l CH340 是一个 USB 总线的转接芯片,实现 USB 转串口 l 全速 USB 设备接口,兼容 USB V2.0 l 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps l 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DS...

东小东博客 5万+

告别工具碎片化:uTools全局启动器与插件化设计重塑电脑操作效率

在软件工程和系统工具领域,自动化与效率提升是核心追求。其基本原理在于通过抽象和封装,将重复性操作转化为可复用的组件或指令,从而降低人工干预成本。从技术价值看,这不仅能减少上下文切换带来的认知负担,还能通过标准化流程提升任务执行的准确性和速度。在实际应用场景中,文件批量处理、格式转换、数据对比等日常操作,往往需要跨多个独立软件完成,导致工作流断裂。而插件化架构和全局启动器的设计,正是为了解决这一痛点,它将离散的工具功能整合为统一的交互入口。本文以 uTools 为例,深入解析如何通过‘一切皆插件,一切皆搜索’

weixin_34408624的博客 516

Windows 11 RDP Wrapper 配置教程与常见问题解决方法

解锁家庭版RDP主机功能(Windows 11家庭版原生不支持作为RDP服务器)突破单用户连接限制,实现多用户同时远程登录(类似服务器版功能)它不修改系统核心文件,通过注入方式工作,相对安全可靠。RDP Wrapper是Windows 11家庭版用户启用远程桌面、突破单用户限制的高效工具。遵循本文步骤可快速完成配置,遇到问题时按常见问题排查方案逐一解决,多数问题可通过更新配置文件或重启服务解决。若长期使用,建议关注官方GitHub仓库的更新,确保兼容性和安全性。

weixin_41521681的博客 1385

从零构建运维思维:Linux、Docker、Zabbix、MySQL、Nginx实战串联指南

很多人以为,从零开始学运维,就是背命令、装软件、看监控图。于是,他们一头扎进“Linux常用命令大全”、“MySQL安装教程”、“Zabbix部署指南”的海洋,试图用知识点堆砌出能力。结果往往是:命令背了又忘,软件装了就报错,监控平台搭起来却不知道看什么。几个月下来,感觉学了很多,但面对一台新服务器或一个线上告警,依然无从下手。 问题出在哪里?因为运维的本质不是“知道”,而是“解决”。它是一套以 稳定性、效率、安全 为核心目标的系统性工程思维。新手和老手的差距,往往不在于知道多少命令,而在于能否把零散的工具

weixin_33882452的博客 349

让 ABAP BAPI_COSTACTPLN_POSTPRIMCOST 不再沉默:一套可落地的参数一致性校验与排错打法

SAP BAPI_COSTACTPLN_POSTPRIMCOST 沉默失败分析与解决方案 问题现象 使用 BAPI_COSTACTPLN_POSTPRIMCOST 上传计划数据时,接口执行不报错但数据未写入 COSP 等计划表,呈现"沉默失败"现象。 根本原因 索引关联断裂:INDEXSTRUCTURE 中 OBJECT_INDEX 和 VALUE_INDEX 未正确关联 COOBJECT 和 PERVALUE/TOTVALUE 表的数据 对象定义冲突:COOBJECT 中同一行填写了多

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 112

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2384

腾讯云开发者在线工具指南:JSON格式化、API调试等效率利器

在软件开发与工程实践中,开发者经常需要处理数据格式化、接口调试、编码转换等基础但高频的任务。这些操作的核心原理在于通过特定算法或协议对数据进行标准化处理,例如JSON格式化基于语法解析与树形结构重组,API调试则遵循HTTP协议规范进行请求与响应的模拟。其技术价值在于显著提升开发效率,减少重复劳动,使开发者能更专注于核心业务逻辑。典型的应用场景包括前后端联调时的JSON数据可视化、快速测试RESTful API接口、处理时间戳与Base64编码等日常需求。本文聚焦于腾讯云官方提供的一系列开箱即用、无广告干扰

weixin_30906185的博客 348

一次把 PRIV mode 讲透:从 ABAP 内存分配链路到定位与治理

ABAP系统进入PRIV模式的本质是Extended Memory耗尽时转向Heap内存的应急机制。该现象会导致工作进程被独占,系统吞吐量下降。触发条件包括系统EM资源池耗尽或单个用户超过配额阈值。关键参数em/address_space_MB和ztta/roll_extension需协同调整。典型症状包括SM50显示PRIV状态、响应延迟和内存dump。治理需双管齐下:系统侧合理配置内存参数,代码侧优化内存使用模式,如分页处理、减少大内表操作和下推聚合逻辑。PRIV模式应作为异常信号而非常态目标,健康系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

基于AI与混合搜索的企业知识库构建:从语义检索到RBAC权限管理

在信息爆炸的时代,企业知识库面临的核心挑战是信息检索效率低下与知识孤岛问题。传统的关键词匹配检索方式已难以应对结构化和非结构化数据混合的知识形态,导致海量文档“存而不用”。为解决这一痛点,现代知识库系统引入了语义搜索技术,其原理是通过Embedding模型将文本转换为高维向量,从而理解查询的深层含义,实现基于语义相似度的智能匹配。这种技术的核心价值在于将知识库从被动的“文档仓库”升级为主动的“智能助手”,能够直接回答自然语言问题并关联推荐相关知识。在实际工程应用中,为了兼顾检索的准确性与安全性,业界普遍采用

weixin_30561425的博客 343

基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机

目录基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机项目实例1. 项目背景2. 系统架构2.1 电励磁同步电动机模型2.2 三相逆变器模型2.3 自适应控制器(Adaptive Controller)2.4 系统框图3. 模型设计3.1 创建Simulink模型3.2 自适应控制(Adaptive Control)设计3.3 仿真环境搭建4. 参数优化4.1 自动调优5. 实际应用案例5.1 工业驱动系统5.2 风力发电系统6. 结论进一步优化建议需求分析电励磁同步电动机

MHD0815的博客 266

Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)

Windows 11 - 打开操作安全中心提示 "需要使用新应用以打开此 Windowsdefender 链接" 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开),当您点击任务栏上要关闭安全中心防护设置时,这种情况打不开怎么解决,怎么办,Windows安全中心,病毒和威胁保护,账户保护,防火墙和网络保护,设备安全性。

🏆 前端领域优质创作者 1万+
上一篇: shell脚本---实现tomcat部署包自动打包并下载到本地
下一篇: shell脚本---实现ceph数据的备份、恢复
lcm_linux
博客等级 码龄7年 7258粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值