Elasticdump安装
#下载安装包
cd /u-data
wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
tar xf node-v10.13.0-linux-x64.tar.xz
#建立文件软连接到系统命令
ln -s /u-data/node-v10.13.0-linux-x64/bin/node /usr/bin/node
ln -s /u-data/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm
#检查是否安装成功
node -v
npm -v
有网络的安装方式
#安装
npm install elasticdump -g
#建立文件软连接到系统命令
ln -s /u-data/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump
# 验证
elasticdump --help
无网络的安装方式
# 查看缓存目录位置
[root@localhost ~]# npm config get cache
/root/.npm
[root@localhost ~]# cd ~
# 压缩缓存,并拷贝到待安装机器
tar -zcvf npm-cache.tar .npm
随后将node-v10.13.0-linux-x64.tar.xz与npm-cache.tar上传到没联网的机器上
将node-v10.13.0-linux-x64.tar.xz上传到/u-data
将npm-cache.tar上传到/root
cd /u-data
tar xf node-v10.13.0-linux-x64.tar.xz
ln -s /u-data/node-v10.13.0-linux-x64/bin/node /usr/bin/node
ln -s /u-data/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm
cd ~
tar -zxf npm-cache.tar
cd /u-data/node-v10.13.0-linux-x64/lib 一定要进入这个目录
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
ln -s /u-data/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump
# 验证
elasticdump --help
Elasticdump使用
#备份索引名为test的为test.json文件
elasticdump --input=http://192.168.1.2:9200/test --output=/opt/esdump/test.json
#还原
elasticdump --input=/opt/esdump/test.json --output=http://192.168.1.3:9200/test
#迁移
elasticdump --input=http://192.168.1.2:9200/test --output=http:/192.168.1.3:9200/test
#带账号密码的数据迁移
elasticdump --input=http://username:password@192.168.1.2:9200/test --output=http://username@password@192.168.1.3:9200/test
#导出索引Mapping数据
./bin/elasticdump \
--input=http://es实例IP:9200/index_name/index_type \
--output=/data/my_index_mapping.json \ # 存放目录
--type=mapping
#导出索引数据
./bin/elasticdump \
--input=http://es实例IP:9200/index_name/index_type \
--output=/data/my_index.json \
--type=data
# Mapping数据导入至索引
./bin/elasticdump \
--output=http://es实例IP:9200/index_name \
--input=/home/indexdata/roll_vote_mapping.json \ # 导入数据目录
--type=mapping
#ES文档数据导入至索引
./bin/elasticdump \
--output=http:///es实例IP:9200/index_name \
--input=/home/indexdata/roll_vote.json \
--type=data
配置脚本使用
[root@win-0003 ~]# vim esdump.sh
#!/bin/bash
A=`date +%Y%m%d`
echo $A
elasticdump --input=http://193.168.57.13:9201/tbl_task_instance_detail_info_1 --output=/data/mysql_data/es/esdump/tbl_task_instance_detail_info_1_$A.json
elasticdump --input=http://193.168.57.13:9201/grid_position --output=/data/mysql_data/es/esdump/grid_position_$A.json
elasticdump --input=http://193.168.57.13:9201/volunteer_team --output=/data/mysql_data/es/esdump/volunteer_team_$A.json
elasticdump --input=http://193.168.57.13:9201/volunteer_activity --output=/data/mysql_data/es/esdump/volunteer_activity_$A.json
elasticdump --input=http://193.168.57.13:9201/yuhua-annex-data --output=/data/mysql_data/es/esdump/yuhua-annex-data_$A.json
elasticdump --input=http://193.168.57.13:9201/yuhua-history-data --output=/data/mysql_data/es/esdump/yuhua-history-data_$A.json
elasticdump --input=http://193.168.57.13:9201/hosting_main_order_info --output=/data/mysql_data/es/esdump/hosting_main_order_info_$A.json
elasticdump --input=http://193.168.57.13:9201/quadtalent_ecommerce_service_item_info_1637246137969_20211118223537969 --output=/data/mysql_data/es/esdump/quadtalent_ecommerce_$A.json
删除目录下3天前的json结尾的文件
find /data/mysql_data/es/esdump -maxdepth 1 -name "*.json" -type f -mtime +2 -exec rm -rf {} \;