如何在Linux服务器上设置date,并防止它重新回到正确的时间

我需要在Ubuntu服务器上将时间设置为1周,并保留在那里(这是针对具有date特定条件的testing环境,需要由利益相关方进行testing/validation),但是当我这样做时date -s 2010-11-11T00:00:00 )大约30分钟后,时间重置为“真实”值。

我禁用了NTPntpdate等,甚至删除了NTP软件包,禁用了munin-node来监视et-al,但仍然发生,我似乎无法弄清楚发生了什么。

我试着设置一个脚本来保持每分钟的时间向前移动,当它在脚本运行之间切换时,它会导致奇怪的行为/ Nginx和Varnish的问题。

有什么build议?

(旁注:这是一个在EC2上运行的Ubuntu 9.10)

附加信息 :没有与时间运行的cron作业,我无法访问硬件时钟来尝试推进,并使用它作为来源….

我觉得这是EC2的成语之一 – 无论你做什么,你都会得到一个“非常可靠”的时钟。

是否有可能在EC2上添加任何虚拟机客户端与主机独立于NTP执行时间同步?

如果只需要几个进程就可以使用libfaketime :

libfaketime拦截程序用来检索当前date和时间的各种系统调用。 然后,它可以向这些程序报告伪造的date和时间(由您,用户指定)。 这意味着您可以修改程序所看到的系统时间,而无需更改系统范围内的时间。

看看/etc/cron.d和/etc/cron.hourly,你应该find那里的东西。 grep for ntpdate和/或hwclock。

如果你已经删除了ntp包,那很可能是硬件时钟(hwclock)被同步。

一个简单的解决办法可能是将你的时区设置为你现在所在的地方的一个小时(例如+10到+11,或者-8到-7)? 这样,下一次你的时钟同步它仍然会有“错误”的时间。