Answers:
有一个库libfaketime
(也在GitHub上),该库使您可以使系统向应用程序报告给定的时间。您可以让系统在程序执行期间报告固定时间,也可以在某个特定时间(例如01:59:30)启动时钟。基本上,您是通过库加载程序将faketime库连接到程序的内存映像中,并且它以自己的方式捕获和处理与系统时间相关的所有系统调用。它不会完全改变系统时间,但是会改变报告给特定应用程序的时间,而不会影响正在运行的其他任何东西,这可能就是您真正想要的(否则,我认为没有理由不仅仅改变全局时间系统时间)。
关于如何使用它,有许多可能的变体,但是看起来像使用libfaketime更改进程认为的时间一样,它列出了相当详尽的清单,并提供了示例代码来进行尝试。如果您知道要搜索的内容,那么Google应该也可以发掘一些示例。
似乎无法通过RHEL存储库对其进行预打包,但是例如Debian在软件包名称下提供了它faketime
。它也可以直接从源代码进行构建(显然甚至不需要任何configure
步骤或类似的操作)。
我要做的是首先安装ntp
服务以与远程服务器同步时间。然后,停止服务,手动更改日期,播放并重新启动服务:
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start