如何获得以毫秒为单位的当前 Unix 时间(即自 Unix 纪元 1970 年 1 月 1 日以来的毫秒数)?
我在dmesg输出中有(例如)这个日志条目:
[600711.395348] do_trap: 6 callbacks suppressed
Run Code Online (Sandbox Code Playgroud)
是否有可能将此“dmesg”时间转换为“实时”时间以了解此事件何时发生?
为什么 Windows Server(在这种情况下为 2008,但我在 2003 年看到过同样的问题)似乎在同步时间时出现问题?我在各种服务器的系统日志中看到了这个错误:
时间服务没有同步系统时间 86400 秒,因为没有时间服务提供者提供可用的时间戳。时间服务在能够与时间源同步之前不会更新本地系统时间。如果本地系统配置为作为客户端的时间服务器,它将停止作为时间源向客户端进行广告。时间服务将继续重试并与其时间源同步时间。检查其他 W32time 事件的系统事件日志以获取更多详细信息。运行“w32tm /resync”以强制进行即时时间同步。
在控制面板下,日期和时间,互联网时间设置被设置为与同步time-nw.nist.gov;上次成功同步是在 2 天前,表明存在某种问题。但是,如果我单击该对话框上的“立即更新”按钮,它确实会随着时间而更新!
那么为什么 Windows 服务器不能在没有我手动干预的情况下在后台通过 NTP 可靠地同步时间呢?我究竟做错了什么?
我当然想在这里实现一些奇怪的东西,但我想在 GNU/Linux 上为 shell 会话在本地伪造日期。我需要对程序在不同日期的行为进行黑盒测试,修改系统范围的日期可能会产生不需要的副作用(cron 作业、混乱的日志等)。
有任何想法吗 ?
有没有办法在不影响主机的情况下动态(在运行时)设置 Docker 容器系统时间?
使用
hwclock --set --date "Sat Aug 17 08:31:24 PDT 2016"
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method.
Run Code Online (Sandbox Code Playgroud)
使用
date -s "2 OCT 2006 18:00:00"
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
date: cannot set date: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
用例:
我需要测试对时间敏感的软件(行为取决于日期)。
其他常见用例:
我在一个盒子上运行 ntpd。我想看看盒子上的时间与从 ntp.ubuntu.com 检索到的时间相比如何。是否有捷径可寻?
对于我用来测试 devops 管道的简单应用程序,我将构建的开始时间输出到主页。在我的开发机器上,我期望的 ISO-8601 时间戳年份 2019 被打印出来(特别是“2019-09-12T20:11:00.000Z”)。当使用 AWS CodeBuild 构建相同的代码库时,ISO-8601 时间戳看起来像“+051668-02-09T08:09:32.000Z”。什么是“+051668”?我想是今年;我最好的猜测是它的年份表示为不同的日历。想法?
AWS CodeBuild 为每个构建 (CODEBUILD_START_TIME) 设置此环境变量。我正在使用他们最新的默认 Ubuntu 容器 (v2.0) 进行构建。
我听说如果您在运行时更改系统时间,数据库和邮件服务器会发生坏事的传言。但是,我很难找到有关实际风险的任何具体信息。
我有一个在 Debian Wheezy 主机上运行的生产 Postgres 9.3 服务器,时间减少了 367 秒。我可以ntpdate在 Postgres 运行时运行或启动 openntp,还是可能会导致问题?如果是这样,纠正时间的更安全方法是什么?
是否有其他服务对系统时间的变化更敏感?也许是邮件服务器(exim、sendmail 等)或消息队列(activemq、rabbitmq、zeromq 等)?
我在 DOS 脚本中遇到了一个错误,该错误使用日期和时间数据进行文件命名。问题是我最终出现了一个差距,因为时间变量没有自动提供小时 < 10 的前导零。所以运行> echo %time% 返回:'9:29:17.88'。
有没有人知道有条件地填充前导零来解决这个问题的方法?
更多信息:我的文件名设置命令是:
set logfile=C:\Temp\robolog_%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log
Run Code Online (Sandbox Code Playgroud)
最终是:C:\Temp\robolog_20100602_93208.log(早上 9:23)。
这个问题和这个有关。
谢谢