---
title: "Easysearch 自动备份:快照生命周期管理"
date: 2025-04-01
lastmod: 2025-04-01
description: "本文介绍如何使用 Easysearch 的快照生命周期功能,实现自动备份。"
tags: ["Easysearch", "Snapshot"]
summary: "之前介绍了 Easysearch 如何 使用 S3 进行快照备份,毕竟那是手工操作。Easysearch 还提供了 快照生命周期管理,能够按照策略自动创建、删除快照,极大地方便了用户的日常管理。
快照生命周期管理计划由创建计划、删除计划以及快照配置组成。
创建计划和删除计划包含一个 cron 表达式,指定任务的频率和时间。 删除计划可以指定快照保留策略,以保留过去 30 天的快照或仅保留最近的 10 个快照。 快照配置包括快照的索引和存储库,并支持所有通过 API 创建快照时的参数。此外,还可以指定快照名称中使用的日期的格式和时区。 快照生命周期创建的快照名称格式为 <policy _ name>-<date>-<Random number> 。
比如, 计划每 2 分钟对索引 .infini_metrics-00001 创建一个快照,并且只保留最近的 2 个快照。
curl -XPOST -uadmin:admin -H 'Content-Type: application/json' 'https://localhost:9200/_slm/policies/daily-policy' -d ' { "description": "测试快照策略", "creation": { "schedule": { "cron": { "expression": "*/2 * * * *", "timezone": "Asia/Shanghai" } }, "time_limit": "1h" }, "deletion": { "schedule": { "cron": { "expression": "*/1 * * * *", "timezone": "Asia/Shanghai" } }, "condition": { "max_count": 2 }, "time_limit": "1h" }, "snapshot_config": { "date_format": "yyyy-MM-dd-HH:mm", "date_format_timezone": "Asia/Shanghai", "indices": "."
---
之前介绍了 Easysearch 如何[使用 S3 进行快照备份](http://infinilabs.cn/blog/2025/hands-on-guide-to-easysearch-s3-backup/),毕竟那是手工操作。Easysearch 还提供了[快照生命周期管理](https://docs.infinilabs.com/easysearch/main/docs/references/management/slm_api/),能够按照策略自动创建、删除快照,极大地方便了用户的日常管理。
快照生命周期管理计划由创建计划、删除计划以及快照配置组成。
+ 创建计划和删除计划包含一个 cron 表达式,指定任务的频率和时间。
+ 删除计划可以指定快照保留策略,以保留过去 30 天的快照或仅保留最近的 10 个快照。
+ 快照配置包括快照的索引和存储库,并支持所有通过 API 创建快照时的参数。此外,还可以指定快照名称中使用的日期的格式和时区。
快照生命周期创建的快照名称格式为 \-\-\ 。
比如, 计划每 2 分钟对索引 .infini_metrics-00001 创建一个快照,并且只保留最近的 2 个快照。
```plain
curl -XPOST -uadmin:admin -H 'Content-Type: application/json' 'https://localhost:9200/_slm/policies/daily-policy' -d '
{
"description": "测试快照策略",
"creation": {
"schedule": {
"cron": {
"expression": "*/2 * * * *",
"timezone": "Asia/Shanghai"
}
},
"time_limit": "1h"
},
"deletion": {
"schedule": {
"cron": {
"expression": "*/1 * * * *",
"timezone": "Asia/Shanghai"
}
},
"condition": {
"max_count": 2
},
"time_limit": "1h"
},
"snapshot_config": {
"date_format": "yyyy-MM-dd-HH:mm",
"date_format_timezone": "Asia/Shanghai",
"indices": ".infini_metrics-00001",
"repository": "easysearch_s3_repo",
"ignore_unavailable": "true",
"include_global_state": "false"
}
}'
```
自动创建的快照如下图,一个 16 点 34 分创建的,另一个 16 点 36 分创建的。
{{% load-img "/img/blog/2025/easysearch-auto-backup-snapshot-lifecycle-management/1.png" "" %}}
⚠️注意:虽然指定只保留最近两个快照,但因为创建和删除其实是两个独立的任务,所以会短暂出现存在 3 个快照的现象,等删除任务调度一次就会删除多余的快照了。
如果遇到维护需要停止自动备份,也有相应的 API 来启停快照策略。
停止策略
```plain
curl -XPOST -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy/_start'
```
启动策略
```plain
curl -XPOST -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy/_stop'
```
查看策略
```plain
curl -XGET -uadmin:admin 'https://localhost:9200/_slm/policies'
```
删除策略
```plain
curl -XDELETE -uadmin:admin 'https://localhost:9200/_slm/policies/daily-policy?pretty'
```
更多详细信息请参考[官方文档](https://docs.infinilabs.com/easysearch/main/docs/references/management/slm_api/)。