Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

  • Redis

  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

    • Elasticsearch 运维知识地图:从安装配置到排障加速恢复
    • Elasticsearch 安装配置
    • 给Elasticsearch集群添加用户密码
    • Elasticsearch 分片和副本:容量怎么规划,改分片数为什么这么麻烦
    • 单节点分片达到默认上限解决办法
    • Elasticsearch集群节点磁盘使用分配不均解决办法
    • Elasticsearch的模板template和映射mapping
    • Elasticsearch 分页查询三种方案:from/size、search_after、scroll 怎么选
    • Elasticsearch字符串搜索方式
    • Elasticsearch使用wildcard字段模糊匹配
    • ES数据迁移工具esm
      • ESM增量同步ES数据
    • Nginx Mirror 模块实现三套ES写入网关
    • ES单机多节点集群docker-compose一键安装
    • ElasticSearch 动态模板 使用方法
    • ES排障两件套:慢查询日志阈值配置 + tcpdump 抓包看真实请求
    • ES 集群恢复太慢?三个参数加速节点/分片恢复
    • Elasticsearch 常用 DSL 语句
    • Logstash迁移ES数据
  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • Elasticsearch
Carry の Blog
2022-03-17
目录

ES数据迁移工具esm

版本说明

本文写于 2022-03。
esm 工具的基本用法未变;新集群若已升级到 8.x 并开启安全认证,迁移命令需额外补充认证参数(-x/-y 的 URL 中携带用户名密码或改用 --auth),迁移逻辑本身不受影响。

# ESM增量同步ES数据

逻辑:每3分钟同步一次10分钟之前的数据

vim /usr/local/bin/esm.sh

#!/bin/bash
while [ true ]; do
    now=$(date +%s000)
    ten_min_ago=$(($now - 600000))
    echo $now $ten_min_ago
    /usr/bin/esm -s http://172.30.3.127:9200 -x "myindex" -d http://172.30.3.137:9200 -w 10 -t 5m -b 10 -q "updatetime:[$ten_min_ago TO $now]"
    sleep 180
done
1
2
3
4
5
6
7
8

vim /usr/lib/systemd/system/esm.service

[Unit]
Description=esm
After=network.target
 
[Service]
Type=simple
PIDFile=/var/run/esm.pid
WorkingDirectory=/usr/local/
ExecStart=/usr/local/bin/esm.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

启动

systemctl daemon-reload
systemctl start esm.service
systemctl status esm.service -l
1
2
3
#Elasticsearch#搜索引擎
上次更新: 8/7/2026

← Elasticsearch使用wildcard字段模糊匹配 Nginx Mirror 模块实现三套ES写入网关→

最近更新
01
Browserless 使用笔记:把 Chrome 变成一个可以被并发调用的网络服务
08-07
02
ORDER BY 配合 LIMIT 触发的索引选择陷阱 原创
08-07
03
Nginx 运维知识地图:从配置基础到反向代理实战 原创
07-29
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式