# CentOS
yum install epel-release
yum install fuse-sshfs
# ubuntu
apt install sshfs
sshfs root@nfs_ip:/data/backup/elasticsearch /data/backup/elasticsearch -o allow_other # 如果没有allow_other参数,挂载过来的目录只有root才能访问
fusermount -u /data/backup/elasticsearch
mkdir /data/backup/elasticsearch
chown -R elasticsearch.elasticsearch /data/backup/elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
path.repo: /data/backup/elasticsearch # 如果是es集群,要确保所有集群可以访问到该目录
curl -X PUT "http://localhost:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d '{ "type": "fs", "settings": { "location": "/data/backup/elasticsearch", "compress": true }}'
仓库名为my_backup,fs仓库类型为共享文件系统,location指定一个本机目录作为快照保存路径
_all替换具体的仓库名称
curl -XGET localhost:9200/_snapshot/_all?pretty
curl -X PUT "localhost:9200/_snapshot/my_backup/news?wait_for_completion=true&pretty" -H 'Content-Type: application/json' -d' { "indices":"indices1,indices2", "ignore_unavailable": true }' # 只备份indices1和indices2索引
curl -XPUT localhost:9200/_snapshot/my_backup/news?wait_for_completion=true # 备份所有索引到my_backup仓库下一个名为news快照中
curl -X PUT "localhost:9200/_snapshot/my_backup/news?wait_for_completion=true&pretty" -H 'Content-Type: application/json' -d' { "indices":"indices1,indices2", "ignore_unavailable": true }' # 只备份indices1和indices2索引
curl -XPUT localhost:9200/_snapshot/my_backup/news?wait_for_completion=true # 备份所有索引到my_backup仓库下一个名为news快照中
仓库名my_backup,快照名news
curl -XGET localhost:9200/_snapshot/my_backup/_all?pretty
mkdir /data/backup/elasticsearch
chown -R elasticsearch.elasticsearch /data/backup/elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
path.repo: /data/backup/elasticsearch # 如果是es集群,要确保所有集群可以访问到该目录
curl -X PUT "http://localhost:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d '{ "type": "fs", "settings": { "location": "/data/backup/elasticsearch", "compress": true }}'
curl -XPOST http://localhost:9200/_snapshot/my_backup/news/_restore?wait_for_completion=true # 默认会恢复news快照中所有的索引