我有几个托管GoGrid的服务器,每次重启我的一台云服务器时,系统时钟都不正确.服务器不是域的成员,因此我只将操作系统设置为与Internet时间服务器同步.这只发生一天一次,我没有看到一个选项,可以在重启后自动执行此操作.所以我留下了编写一些代码来为我做这件事.
我使用"w32tm/resync"命令创建了一个批处理文件,并将其安排在系统启动时运行,但它不起作用,因为运行批处理文件时网络连接不可用.如何在OS完全加载并且网络连接可用后启动时间同步?我需要在计算机启动后尽快保持正确的时间,这样我的数据库中的时间戳才是正确的.
在Windows 2008上,任务计划程序中有一个选项,允许您在任务运行之前等待网络连接可用.在任务属性对话框中,创建一个新的"启动时"触发器,并确保选中"已启用"框.添加操作以运行批处理文件.最后,添加条件以仅在网络连接可用时启动任务.然后,我要求它重新启动命令,如果失败则最多3次.这似乎很有效.
在旧版本的Windows上,使用以下批处理文件内容重试sync命令,直到成功,或者直到它重试次数太多.
REM *** Retry for up to 15 minutes (90 retries @ 10 seconds each) set retryCount=0 :SyncStart if %retryCount == 90 goto SyncEnd set /A retryCount=retryCount + 1 REM *** Resync the system clock w32tm /resync if errorlevel 1 goto SyncDelay if errorlevel 0 goto SyncEnd :SyncDelay REM *** If unsuccessful, delay 10 seconds, then retry choice /n /t:y,10>nul goto SyncStart :SyncEnd
通常,Windows时间服务应该为您处理这个问题.
http://technet.microsoft.com/en-us/library/cc773013.aspx
你有服务吗?