有什么办法可以让系统时间变慢或变快?

有什么办法可以让系统时间变慢或变快?

我想让 Linux 上的系统时钟变慢或变快。

在 Windows 上,有一个方便的免费软件,名为“时间旅行“。要了解它的作用,只需检查此图像,一切都是不言自明的:

在此输入图像描述

因此,将速度设置为 0.9,使 PC 上的实际一分钟仅为 54 秒,只需单击一下即可轻松将系统时间再次同步到实时时间。

我喜欢某种适用于 Linux 的软件或工具,它也可以完成此操作或非常接近它的操作。有谁知道什么吗?

谢谢。


PS:Windows 软件的图片和链接只是为了说明 Windows 存在一些真正简单的 GUI 解决方案,我想在 Linux 系统上接近它。

答案1

调整时间是校准Linux系统时钟的工具(对CPU频率没有影响),它可以让系统时钟变慢或变快,但只是小调整。

简短描述man 8 adjtimex

-t val, --tick val
              Set the number of microseconds that should be added to the
              system time for each kernel tick interrupt.
-f newfreq, --frequency newfreq
              Set the system clock frequency offset to newfreq.  newfreq can
              be negative or positive, and gives a much finer adjustment 
              than the --tick switch.
-s adj, --singleshot adj
              Slew the system clock by adj usec. 
-o adj, --offset adj
              Add a time offset of adj usec.

如果你想让时钟走得更快,你可以使用脚本定期设置系统时钟,如下所示:

#!/usr/bin/env python3

import time

clk_id = time.CLOCK_REALTIME

def run(cycle, speed):
    while True:
        t = time.clock_gettime(clk_id)
        time.clock_settime(clk_id, t + speed * cycle)
        time.sleep(cycle)

if __name__ == '__main__':
    run(0.01,24) # set time every 0.01 second, 24 times faster than normal

当你想让它慢一点时要小心。你应该保持时间平稳,你可以让时间更慢地增加或停止,但你不应该把它设置得早于它到达的时间。也就是说,你无法回到过去。

因此,不要使用脚本来强制时钟变慢。

答案2

我不知道有哪个系统本地工具可以在 Linux 上执行此操作。然而,有一个程序可以为进程及其子进程执行此操作(带有注意事项),这通常就足够了,faketime-参见暂时更改时间了解详情。

我记得大约十五年前的某个时候,使用可控 NTP 服务器进行系统范围的测试;如果我记得那是什么,我会在此处添加信息。

相关内容