Elasticsearch Snapshot Backup on NetBSD 10
Step 1 – Register a snapshot repository (filesystem)
# Create backup directory
mkdir -p /var/backups/elasticsearch
chown elasticsearch:elasticsearch /var/backups/elasticsearch
Add to elasticsearch.yml:
path.repo: ["/var/backups/elasticsearch"]
Register the repo via API:
curl -X PUT "https://localhost:9200/_snapshot/my_backup" \
-u elastic:YourPassword \
--cacert /etc/elasticsearch/certs/http_ca.crt \
-H 'Content-Type: application/json' \
-d '{
"type": "fs",
"settings": {
"location": "/var/backups/elasticsearch",
"compress": true
}
}'
Step 2 – Take a snapshot
curl -X PUT "https://localhost:9200/_snapshot/my_backup/snapshot_$(date +%F)?wait_for_completion=true" \
-u elastic:YourPassword \
--cacert /etc/elasticsearch/certs/http_ca.crt
Step 3 – List snapshots
curl -u elastic:YourPassword \
--cacert /etc/elasticsearch/certs/http_ca.crt \
'https://localhost:9200/_snapshot/my_backup/_all?pretty'
Step 4 – Restore a snapshot
# Close index first if restoring into existing cluster:
curl -X POST "https://localhost:9200/my-index/_close" \
-u elastic:YourPassword --cacert /etc/elasticsearch/certs/http_ca.crt
# Restore:
curl -X POST "https://localhost:9200/_snapshot/my_backup/snapshot_2026-05-07/_restore" \
-u elastic:YourPassword --cacert /etc/elasticsearch/certs/http_ca.crt \
-H 'Content-Type: application/json' \
-d '{"indices": "my-index"}'