es备份之snapshot SLM策略cron详解

在ES集群种,snapshot作为一种简单而且能够满足自动化的备份方式,通过定义SLM(快照生命周期)来实现一个自动备份的操作。且通过设置还可以管理快照的保存删除之类的操作,可以说极大的节省了运维人员的工作成本。

cron表达式
 <seconds> <minutes> <hours> <day_of_month> <month> <day_of_week> [year]

所有计划均以世界时(UTC)为准,不支持其他时区。

corn表达原件

除year以外,其他所有元素都是必需的。

元素性质有效值
<seconds>必填0-59和特殊字符, - * /
<minutes>必填0-59和特殊字符, - * /
<hours>必填0-23和特殊字符, - * /
<day_of_month>必填1-31和特殊字符, - * / ? L W
<month>必填1- 12JAN- DECjan-dec和特殊字符, - * /
<day_of_week>必填1- 7SUN- SATsun-sat和特殊字符, - * / ? L #
<year>可选1970-2099和特殊字符, - * /
cron特殊字符
特殊字符具体使用方法
*选择一个字段的每个可能的值。例如,*在该hours字段中表示“每小时”。
没有具体值。当您不在乎值是什么时使用。例如,如果您希望计划在每月的特定日期触发,但不在乎星期几,则可以?day_of_week字段中指定。
-值的范围(含)。用于分隔最小值和最大值。例如,如果您希望时间表在上午9:00和下午5:00之间每小时触发一次,则可以9-17hours字段中指定。
多个值。用于分隔字段的多个值。例如,如果您希望时间表在每个星期二和星期四触发,则可以TUE,THUday_of_week字段中指定。
/增量。指定时间增量时用于分隔值。第一个值代表起点,第二个值代表间隔。例如,如果您希望时间表从小时的顶部开始每20分钟触发一次,则可以0/20minutes字段中指定。同样,从该月的第一天开始,1/5day_of_month字段中指定将每5天触发一次。
L最后的。在day_of_month字段中使用表示月份的最后一天-非-年的1月31日,2月的28日,4月的30日,依此类推。在day_of_week字段中单独使用代替7SAT,或在一周中的特定日期之后选择该类型在月中的最后一天。例如,6L表示月份的最后一个星期五。您可以LWday_of_month 字段中指定以指定该月的最后一个工作日。L在指定值列表或值范围时避免使用该选项,因为结果可能不会达到您的期望。
W平日 用于指定最接近给定日期的工作日(星期一至星期五)。例如,如果您15Wday_of_month字段中指定, 而15号是星期六,那么时间表将在14号触发。如果15日是星期日,则时间表将在16日星期一触发。如果15日是星期二,则时间表将在15日星期二触发。但是,如果您将1W的值指定为day_of_month且第1个是星期六,则计划将在第3个星期一触发-它不会跳过月份边界。您可以LWday_of_month字段中指定以指定该月的最后一个工作日。您只能在W当天day_of_month是一天时使用该选项-在指定日期范围或日期列表时无效。
#一个月中的第N个XXX天。在day_of_week字段中使用以指定每月的第XXX天。例如,如果指定6#1,则计划将在该月的第一个星期五触发。请注意,如果您指定3#5并且特定月份中没有5个星期二,则计划不会触发该月份。
例子
设置每日触发
0 5 9 \* \* ?                 每天在世界标准时间上午9:05触发。
0 5 9 \* \* ? 2020            2020年期间,每天在世界标准时间上午9:05触发。
将触发器限制在几天或者时间范围内
0 5 9 ? * MON-FRI             星期一至星期五,世界标准时间上午9:05触发。
0 0-5 9 * * ?                 从UTC上午9:00开始到UTC每天9:05结束,每分钟触发一次。
设置间隔触发
0 0/15 9 * * ?                从UTC上午9:00开始到UTC每天9:45结束,每15分钟触发一次。
0 5 9 1/3 * ?                 从每月的第一天开始,每月每3天在UTC上午9:05触发。
设置在特定的日期触发
0 1 4 1 4 ?                   在每年世界标准时间4月1日凌晨4:01触发。
0 0,30 9 ? 4 WED              4月的每个星期三,在UTC上午9:00和UTC上午9:30触发。
0 5 9 15 * ?                  在每个月的15日(世界标准时间)上午9:05触发。
0 5 9 15W * ?                 在每个月15日最近的工作日(世界标准时间)上午9:05触发。
0 5 9 ? * 6#1                 在每个月的第一个星期五上午9:05触发。
使用last设置触发器
0 5 9 L * ?                   在每个月的最后一天上午9:05在世界标准时间触发。
0 5 9 ? * 2L                  在每个月的最后一个星期一的UTC上午9:05触发。
0 5 9 LW * ?                  在每个月的最后一个工作日世界标准时间上午9:05触发。

最后附一个关于设置SLM策略的方法给大家一个例子,仅供参考

[root@localhost ~]# curl -X PUT "192.168.159.128:9201/_slm/policy/backup-snapshots?pretty" -H 'Content-Type: application/json' -d'
{
  "schedule": "0 0 0 ? * 2",        #备份的时间
  "name": "<backup-snap-{now/d}>",  #快照的名称格式
  "repository": "back",             #备份的repository
  "config": { 
    "indices": ["*"]                #备份的索引
  },
  "retention": { 
    "expire_after": "14d",          #快照存储的天数
    "min_count": 3,                 #最少存多少快照
    "max_count": 5                  #最多存多少快照
  }
}
'

参考链接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/cron-expressions.html#cron-special-characters

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值