# 2 自定义间隔

#### 概述

有两种方法可以创建检查项目的时间的自定义规则。
*灵活间隔*，允许重新定义默认更新间隔，*调度*，可以在特定时间或时间序列执行项目检查。

#### Flexible intervals

#### 灵活间隔

灵间隔允许重定义特定时间段的默认更新间隔。
灵活的间隔被定义为*间隔*和*期间*，其中：

-   *间隔* – 指定时间段的更新间隔
-   *期间* –
    灵活间隔有效的时间段（周期格式请参阅详细说明[时间期间](/zh/manual/appendix/time_period)）

可以定义多达七种灵活的时间间隔。如果多个灵活间隔设置有冲突，则在冲突周期中使用最小的*间隔*值。请注意，如果灵活间隔的最小值为“0”，则不会进行轮询。在灵活间隔之外，使用默认更新间隔。

请注意，如果灵活间隔等于周期的长度，则该监控项将被精确检查一次。如果灵活间隔大于周期，则可能会检查该监控项一次，或者完全不检查该监控项（因此不建议这样配置）。如果灵活间隔小于周期，监控项将至少被检查一次。

如果灵活间隔设置为“0”，则在灵活间隔期间不轮询监控项，并在周期结束后根据默认更新间隔恢复轮询。
示例：

|间隔   周|描述|<|
|------------|------|-|
|10|1-5,09:00-18:00|监控项将在工作时间内每10秒检查一次。|
|0|1-7,00:00-7:00|监控项不会在夜间检查。|
|0|7-7,00:00-24:00|监控项在星期日不会被检查。|
|60|1-7,12:00-12:01|监控项将在每天12:00点检查。请注意，这种被用作计划检查的一般性方法从Zabbix 3.0开始建议使用调度间隔来实现。|

#### 调度间隔

调度间隔用于在特定时间检查监控项。虽然灵活间隔被设计为重新定义默认监控项的更新间隔，但是调度间隔用于指定独立执行的检查计划。

调度间隔定义为: `md<filter>wd<filter>h<filter>m<filter>s<filter>` 其中:

-   **md** - month days
-   **wd** - week days
-   **h** - hours
-   **m** - minutes
-   **s** – seconds

`<filter>` 用于指定其前缀的值(日, 时, 分, 秒) 并被定义为:
`[<from>[-<to>]][/<step>][,<filter>]` 其中:

-   `<from>` 和 `<to>` 定义匹配值的范围（包括）。 如果忽略 `<to>`
    ，则过滤器匹配 `<from> - <from>` 范围。 如果 `<from>`
    也被省略，则过滤器匹配所有可能的值。
-   `<step>` 通过该范围定义数字值的跳过。默认情况下， `<step>`
    的值为1，这意味着所有定义范围的值都匹配。

虽然过滤器定义是可选的，但必须至少使用一个过滤器。过滤器必须有一个范围或定义的*<step>*值。

如果没有定义低级过滤器，则一个空的filter既与“0”匹配，又匹配所有可能的值。例如，如果省略小时过滤器，仅当分钟和秒的过滤器也被省略则只有“0”小时将匹配，否则空的小时过滤器将匹配所有小时值。

它们各自的过滤器前缀的有效 `<from>` 和 `<to>` 值分别为：

|前缀   描|*&l|;from>*   *&l|;to>*|
|------------|---|----------------|--------|
|md|Month days|1-31|1-31|
|wd|Week days|1-7|1-7|
|h|Hours|0-23|0-23|
|m|Minutes|0-59|0-59|
|s|Seconds|0-59|0-59|

`<from>` 值必须小于或等于 `<to>` 值。 `<step>`
值必须大于或等于1且小于或等于 `<to>` - `<from>`。

单个数字月份、小时、分钟和秒值可以前缀为0.例如 `md01-31` 和 `h/02`
是有效间隔，但 `md01-031` 和 `wd01-07` 无效。

在Zabbix管理Web端，多个调度间隔以单独的行输入。在Zabbix
API中，它们连接成单个字符串，以分号 `;` 作为分隔符。

如果时间匹配了几个间隔，则只执行一次。例如， `wd1h9;h9`
将在星期一上午9点执行一次。

示例:

|间隔                                        描|<|
|-------------------------------------------------|-|
|m0-59|每分钟执行一次|
|h9-17/2|从9:00开始每2小时执行一次（9:00，11:00 ...）|
|m0,30 or m/30|在每小时的hh:00 和 hh:30执行|
|m0,5,10,15,20,25,30,35,40,45,50,55 or m/5|每5分钟执行|
|wd1-5h9|每周一至周五9:00|
|wd1-5h9-18|每个星期一到星期五在9：00,10：00，...，18:00|
|h9,10,11 or h9-11|每天上午9:00，10:00和11:00|
|md1h9m30|每个月的第一天在9:30|
|md1wd1h9m30|如果是星期一，每个月的第一天在9:30执行|
|h9m/30|在9:00，9:30执行|
|h9m0-59/30|在9:00，9:30执行|
|h9,10m/30|在9:00，9:30，10:00，10:30执行|
|h9-10m30|在9:30，10:30执行|
|h9m10-40/30|在9:10，9:40执行|
|h9,10m10-40/30|在9:10，9:40，10:10，10:40执行|
|h9-10m10-40/30|在9:10，9:40，10:10，10:40执行|
|h9m10-40|在9:10，9:11，9:12，... 9:40执行|
|h9m10-40/1|在9:10，9:11，9:12，... 9:40执行|
|h9-12,15|在9:00，10:00，11:00，12:00，15:00执行|
|h9-12,15m0|在9:00，10:00，11:00，12:00，15:00执行|
|h9-12,15m0s30|在上午9时30分，上午10时30分，11时30分，12时30分，15时30分执行|
|h9-12s30|在9:00:30，9:01:30，9:02:30 ... 12:58:30，12:59:30执行|
|h9m/30;h10|在9:00，9:30，10:00执行|
