服务器版本:CentOS Linux release 7.9.2009 (Core)

nodeJs版本:node-v12.18.3

1.安装nodejs

解压
tar -xvf node-v12.18.3-linux-x64.tar.xz -C /usr/local/

重命名
mv node-v12.18.3-linux-x64 nodejs

建立文件链接使npm和node命令到系统命令
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/nodejs/bin/node /usr/local/bin/

配置环境变量
vi /etc/profile
# 在文件最后插入
export NODE_HOME=/usr/local/nodejs
export PATH=$PATH:$NODE_HOME/bin

# source环境变量
source /etc/profile

检查是否安装成功
node-v
npm-v

2.离线安装elasticdump

先找一台可以连接外网的服务器,安装elasticdump

# 安装
npm install elasticdump -g

# 建立文件软连接到系统命令
ln -s /usr/local/nodejs/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump

# 验证
elasticdump --help

3.在离线机器上导入缓存模块进行安装

cd /root/
# 解压
tar -xvf npm-cache.tar
# 进入node下的lib目录执行安装命令
cd /usr/local/nodejs/lib
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
# 建立文件软连接到系统命令
ln -s /usr/local/nodejs/lib/node_modules/elasticdump/bin /usr/bin/elasticdump
# 验证
elasticdump --help

4.导出导入

导出索引的格式

#格式:elasticdump --input {protocol}://{host}:{port}/{index} --output ./test_index.json
#例子:将ES中的test_index中的索引导出
#导出当前索引的mapping结构
$ elasticdump --input http://192.168.56.104:9200/test_index --output ./test_index_mapping.json --type=mapping
#导出当前索引下的所有真实数据
$ elasticdump --input http://192.168.56.104:9200/test_index --output ./test_index.json --type=data

向新的es服务导入索引
# 创建索引
$ curl -XPUT http://192.168.56.104:9200/test_index
#因为导入的是mapping,所以设置type为mapping
$ elasticdump --input ./test_index_mapping.json --output http://192.168.56.105:9200/ --type=mapping
#因为导入的是data(真实数据)所以设置type为data
$ elasticdump --input ./test_index.json --output http://192.168.56.105:9200/ --type=data

如果导出导入带有密码的es,需要在//后边加上对应的账号密码,密码如果带特殊字符,再加单引号
http://admin:'admin1234!'@192.168.56.104:9200/test_index

参考链接

https://blog.csdn.net/weixin_40620344/article/details/108238732
https://www.cnblogs.com/rianley/p/14355721.html