elasticsearch-backup
A cli/package tool to backup&restore Elasticsearch
Built by @quickly3
Installation
The most common use of esbs is to use it as a global cli.
npm install esbs -g
First of all you should init you config file ~/.esbs_config
,set up your es host/port or s3 BUCKET to support this cmd.
esbs --init
ES_HOST=127.0.0.1ES_PORT=9200STORAGE_PATH=/Users/test-user/backupDEBUG=TRUES3_BUCKET=esbs-testS3_CLIENT=default
Then show the usage via global cli
esbs -h
Usage: esbs [options] Options: -V, --version output the version number -R, --restore restore model -B, --backup backup model -D, --delete delete repository/snapshot -r, --repository <repository> Set a repository name -s, --snapshot <snapshot> Set a snapshot name -t, --type <type> Set a storage type ef/s3 -i, --indices <indices> A list index default all [usage] "index1,index2" -d, --dir <dir> set backup dir --init Create config File --showTasks show runing tasks --showIndeics show nodes indices --sr, --showRepository show Repositories --ss, --showSnapshot show Snapshots --ssi, --showSnapshotInfo show Snapshot detail info -h, --help output usage information
Also esbs is to use it as a library. In this case, just include it in your Node.js project by adding a line for "esbs" in your pacakge.json
dependencies. For more information about your package.json
file, you should check out the npm documentation by running npm help json
.
Alternatively, you can quickly install Filepath for use in a project by running
npm install esbs
which will install esbs in your node_modules/
folder.
Quick Start
Global cli
For Backup Example
esbs -B -r my_repository -s my_snapshot1 -i "index1,index2"
For Restore Example
esbs -R -r my_repository -s my_snapshot1 -i "index1,index2" --rp "index_(.+)" --rr "restored_index_$1"
Load the module
var esbs = require('../'); let options = { ES_HOST: '127.0.0.1', ES_PORT: '9200', STORAGE_PATH: '/Users/test-user/backup', S3_BUCKET: 'esbs-test', S3_CLIENT: 'default', DEBUG: 'TRUE', indices: '*', snapshot_type: 'fs', repository: 'es-backup', waitForCompletion: false, snapshot: 'test2', location: '/Users/test-user/backup/es-backup', s3_dir: 'es-backup'} esbs.setOptions(options);esbs.doAction("backup");
Notice
For backup your es to fs : open es config file config/elasticsearch.yml
,add repositroy storage path
path.repo: ["/tmp/backup"]
then restart your elasticsearch service.
For local to s3 :
https://blog.csdn.net/feng12345zi/article/details/81006440
Spec for Aws es:
https://stackoverflow.com/questions/45958911/elasticsearch-js-with-aws