Linux lsclocks 怎样列出系统支持的时钟
在 Linux 上想知道“系统支持哪些时钟”,直接看 date 往往不够:它只回答当前日期时间,并不能把 POSIX 时钟、进程 CPU 时钟、PTP、RTC 和辅助时钟放在同一个视图里。lsclocks 是 util-linux 提供的专门工具,默认会列出可发现的系统时钟,并给出当前时间与分辨率。
最小用法是lsclocks;需要脚本消费时使用lsclocks -J,需要只看一个对象时使用-t,自动发现之外的设备则用--dynamic-clock或--rtc显式补入。
官方地址:https://github.com/util-linux/util-linux/
先确认 lsclocks 的默认清单
先不要急着加很多参数,默认输出最适合确认两件事:命令是否来自当前系统的 util-linux,以及当前环境能发现哪些时钟。它的目标是“列清单”,不是切换内核时钟源,也不是校准 RTC。
# 先查看系统能发现的时钟、当前值和分辨率 lsclocks # 需要确认工具版本时,使用帮助或版本选项 lsclocks --version
手册把可见对象分为几类:POSIX 时钟包括 CLOCK_MONOTONIC、CLOCK_REALTIME 和 CLOCK_BOOTTIME 等;CPU 时钟来自进程 CPU 时钟接口;PTP 和 RTC 通常对应设备节点;辅助时钟则是系统提供的 CLOCK_AUX* 对象。清单里看不到某类对象,不等于 Linux 完全不支持它,可能只是当前主机没有相应设备或发现条件。

为什么默认结果和硬件时钟不是一回事
排查时最容易混淆的是“时钟对象”和“内核选中的 clocksource”。Linux 内核的 timekeeping 文档讨论的是内核如何读取时钟源来维护时间;lsclocks 则提供用户空间可观察对象的清单、当前时间和分辨率。两者相关,但不是同一个查询。
可以按下面的思路判断:
- 只想知道可用对象:先看默认
lsclocks输出。 - 想看某个硬件时钟:关注
/dev/ptp0、/dev/rtc0这类路径,并用显式参数加入。 - 想分析调度或计时精度:关注
TIME、RESOL,再结合程序实际使用的 clock ID。
因此,看到 RTC 行并不能推出系统当前正在用 RTC 做所有单调计时;同样,看到高分辨率字段也不能直接推出业务延迟一定更低。
用列选择和单时钟查询缩小范围
默认表格适合人读,排查特定问题时可以减少字段。--output 选择需要的列,--output-all 展开全部列;具体列名以当前系统的帮助输出为准。手册列出的字段包括原始名称、短名称、当前时间、ISO8601 时间、原始分辨率和可读分辨率。
# 只保留名称、可读时间和可读分辨率,便于人工比较 lsclocks --output NAME,TIME,RESOL # 查看当前版本支持的全部列,再按需复制列名 lsclocks --help # 只查询一个时钟;这里的名称应替换为默认清单中真实存在的名称 lsclocks --time CLOCK_MONOTONIC
-t(--time)用于显示一个指定时钟的当前值。它不是“把系统时间改成这个时钟”,也不会改变内核时钟配置。若只是为了脚本稳定解析,不要依赖人读表格中的空格对齐,优先考虑下一节的 JSON 输出。

用 JSON、动态时钟和 RTC 处理特殊环境
当结果要交给 shell、Python 或监控采集器时,使用 -J(--json)更合适。JSON 只改变输出格式,不会凭空增加主机上不存在的时钟。
# 用 JSON 输出,避免脚本依赖表格列宽 lsclocks -J # 明确加入一个动态时钟;路径应替换为环境中确实存在的设备 lsclocks --dynamic-clock /dev/ptp0 # 明确加入 RTC;没有该设备时不要把路径写死到部署脚本 lsclocks --rtc /dev/rtc0
默认情况下,工具会尝试发现动态时钟和 RTC;--no-discover-dynamic、--no-discover-rtc 可以关闭对应的自动发现。如果你需要测试“仅保留默认对象”的采集行为,这两个选项很有用。反过来,容器、虚拟机或权限受限环境中,显式路径可能不存在、不可访问或不代表宿主机的完整设备集合,脚本应把“没有该行”当成环境差异处理,而不是直接判定命令失效。
常见误区与速查
| 需求 | 推荐写法 | 注意 |
|---|---|---|
| 列出可发现时钟 | lsclocks | 清单取决于当前环境 |
| 机器解析 | lsclocks -J | 不要解析对齐空格 |
| 只看一个时钟 | lsclocks -t CLOCK_... | 先确认名称存在 |
| 补入设备时钟 | --dynamic-clock PATH 或 --rtc PATH | 路径和权限由主机决定 |
最后可以按三步复查:先用默认输出确认对象范围,再用 -o 或 -t 缩小问题,最后用 -J 固化脚本输入。这样既不会把“显示时钟”误认为“切换时钟源”,也能把设备差异留在明确的边界里。
相关问题
lsclocks 能修改系统时间吗?
不能。它负责显示时钟对象及其属性;修改系统时间、校准 RTC 或选择内核时钟源属于其他工具和配置路径。
为什么不同机器上的 lsclocks 行数不同?
POSIX 时钟、进程 CPU 时钟、PTP、RTC 和动态设备的可见性受内核、硬件、容器和权限影响,清单不同是正常边界。
脚本应该解析哪个字段?
优先使用 -J 的结构化结果,并按实际需求选择 NAME、TIME、ISO_TIME 或 RESOL,不要依赖默认表格的列顺序。
Python tabnanny 怎样定位缩进中混用制表符的问题
- 上一篇
- Python tabnanny 怎样定位缩进中混用制表符的问题
- 下一篇
- Go llrb ReplaceOrInsert怎样判断两个对象相同
-
- 文章 · linux | 1小时前 | 随机数 · Linux sha256sum mcookie magic cookie 文件校验和
- Linux mcookie 输出的十六进制串为什么不是文件校验和
- 489浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux mcookie 怎样从文件内容补充随机输入
- 453浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux lslogins 的登录信息与账号属性有什么区别
- 348浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linux lsirq 的总计数与各CPU计数怎样对应
- 410浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux lsirq 怎样筛选指定中断编号
- 382浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux lsfd 的文件描述符号与inode号有什么区别
- 494浏览 收藏
-
- 文章 · linux | 6小时前 |
- Linux lsfd 怎样按进程筛选打开的文件描述符
- 455浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux lastlog2 的数据库与传统lastlog文件有什么区别
- 303浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linux lastlog2 怎样查询指定用户最近登录信息
- 434浏览 收藏
-
- 文章 · linux | 9小时前 | 命令行 · Linux · Linux util-linux utmpdump utmp wtmp
- Linux utmpdump 的逆向转换为何不宜直接覆盖原记录
- 470浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 809次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 798次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 890次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 861次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 687次使用
-
- Linux vmstat 如何分辨内存抖动与磁盘等待:si、so、wa 与复测顺序
- 2026-08-30 501浏览
-
- Linux搭建vsftpdFTP服务器教程
- 2026-04-30 501浏览
-
- Shell脚本安装教程:.sh一键安装指南
- 2026-03-16 501浏览
-
- Linux清空文件内容的几种方法
- 2025-12-01 501浏览
-
- Linux命令行下载文件技巧
- 2025-11-23 501浏览

