我有几个托管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