全部产品
Search
文档中心

云服务器 ECS:系统时间跳变演练

更新时间:Aug 04, 2026

时间跳变指系统时钟突然发生变化。系统时间的准确性、系统各组件时间的一致性,对于生产系统至关重要,否则会导致依赖时间的各种服务异常,如日志、同步备份等。通过时间跳变演练可以验证系统在发生系统时间跳变时,能否及时同步恢复正确时间并恢复业务。

实现原理

本方案使用云助手插件ACS-ECS-TimeJump,通过设置系统时间偏移量可将时间向前或向后调整。并通过Chrony服务与NTP时间服务器同步,实现故障恢复,因此使用该插件注入需安装Chronyc服务。

使用指南

演练准备

请确保您的ECS实例已安装云助手Agent,并且云助手状态正常。具体操作,请参见查看云助手状态及异常状态处理

故障注入

  1. 登录ECS实例。

    具体操作,请参见使用Workbench登录Linux实例

  2. 使用具有sudo访问权限的用户,运行云助手插件ACS-ECS-TimeJump

    sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params inject,[time=paramA],[duration=paramB]

    []内为可选故障注入参数,参数说明:

    • time(可选):时间偏移量,单位为秒,为正整数时表示将时间向后调整,为负整数时向前调整,默认为1。

    • duration(可选):持续时间,单位为秒,默认300。

    显示如下所示时,说明云助手插件ACS-ECS-TimeJump已启动。

    [ecs-user@iZ0jlfp0by6c          ~]$ sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params inject,time=120
    Will jump 120 seconds.
    Wed Sep 18 02:34:18 PM CST 2024
    Done
  3. 执行date命令,检查系统当前时间是否符合预期。

    [ecs-user@iZ0jlfp0by6d    ~]$ date
    Wed Sep 18 02:34:55 PM CST 2024

故障恢复

  • 方法一:等待超时自动恢复。

  • 方法二:在ECS实例中执行故障恢复命令。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params recover
    重要

    恢复命令实际为触发一次时间同步,Chrony服务时间同步所需时间取决于多个因素,因此演练结束后请务必检查时间是否恢复。

演练示例

  1. 为更好地观察时间跳变的过程,在终端中运行以下脚本,该脚本会每秒打印当前系统时间。

    while true; do
        date +"%Y-%m-%d %H:%M:%S"
        sleep 1
    done
  2. 故障注入。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params inject,time=1800

    会将当前系统时间向后调整1800s,返回如下所示,其中会打印调整后的系统时间。

    [ecs-user@iZ0jlfp0by6xxx ~]$ sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params inject,time=1800
    Will jump 1800 seconds.
    Wed Sep 18 04:05:02 PM CST 2024
    Done
  3. 查看故障注入效果。

    可以看到在15:35:01,系统时间发生跳变。

    [ecs-user@iZ0jlfp0by6xxx          ~]$ while true; do
    >    date +"%Y-%m-%d %H:%M:%S"
    >    sleep 1
    > done
    2024-09-18  15:34:56
    2024-09-18  15:34:57
    2024-09-18  15:34:58
    2024-09-18  15:34:59
    2024-09-18  15:35:00
    2024-09-18  15:35:01
    2024-09-18  16:05:02
    2024-09-18  16:05:03
    2024-09-18  16:05:04
    2024-09-18  16:05:05
    2024-09-18  16:05:06
    2024-09-18  16:05:07
    2024-09-18  16:05:08
    2024-09-18  16:05:09
  4. 执行恢复命令。

    此时,系统会自动与NTP服务器进行时间同步。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-TimeJump --params recover

    系统时间恢复正常。

    2024-09-18 16:08:45
    2024-09-18 16:08:46
    2024-09-18 16:08:47
    2024-09-18 16:08:48
    2024-09-18 16:08:49
    2024-09-18 16:08:50
    2024-09-18 15:39:01
    2024-09-18 15:39:02
    2024-09-18 15:39:03
    2024-09-18 15:39:04
    2024-09-18 15:39:05
    2024-09-18 15:39:06
    2024-09-18 15:39:07
    2024-09-18 15:39:08

设置系统时间

配置NTP时间同步服务,并检查时间同步服务是否已经启动。具体操作,请参见时间同步