`
dxiao2
  • 浏览: 26042 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

Linux,时钟和时间

阅读更多
Linux,时钟和时间

介绍:

本文档解释了如何从linux下设置计算机的时钟,如何设置您的时区和其它与linux如何保存时间相关的材料。
您的计算机有两个时钟,一个是始终运行的、由电池供电的( 硬件的、BIOS或CMOS )时钟,另一个是由运行在您的计算机上的操作系统维护的( 系统 )时钟。硬件时钟通常只在操作系统启动时用来设置系统时钟,然后直到重启或关闭系统,由系统时钟来记录时间。在Linux 系统中,您可以选择用UTC/GMT 时间或本地时间来记录硬件时钟。推荐的选项是用UTC 记录,因为夏令时可以自动记录。使用UTC 记录硬件时钟的唯一不足是,如果您使用双系统,其它操作系统,如DOS 要求硬件时钟用本地时间设置,那么在那个操作系统里时间将是错误的。

设置时区:

Linux 下的时区是通过建立从/etc/localtime[1] 到/usr/share/zoneinfo [2] 目录下与您所在时区相符的文件的符号链结实现的。例如,由于我在南澳大利亚,/etc/localtime就是到/usr/share/zoneinfo/Australia/South的符号链结。要建立这个链结,运行:
ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime

替换your/zone 为形如Australia/NSW或Australia/Perth 的文件。看看/usr/share/zoneinfo目录都有什么时区。

[1] 这里假设/usr/share/zoneinfo 是到/etc/localtime 的链结的前提是Redhat Linux
[2] 在旧版本的系统里,您会发现使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。参考后面“一些应用程序中时间错误”。

设置UTC 或本地时间:

当Linux 启动时,一个启动脚本运行/sbin/hwclock 程序复制当前硬件时钟时间到系统时钟。hwclock 假定硬件时钟设置为本地时间,除非它使用了--utc 参数。在RedHat Linux下您不是编辑启动脚本,而是编辑/etc/sysconfig/clock 文件,相应的改变UTC 一行为UTC=true或UTC=false。

设置系统时钟:

在Linux 下设置系统时钟使用date命令。例如,设置当前时间和日期为July 31,11:16pm,运行date 07312316 ( 注意这里的时间是24小时制) ;如果您想设置年份为1998,
应该运行date 073123161998 ;要是也想设置秒,运行date 07312316.30或date 073123161998.30。要查看Linux 当前本地时间,使用date,不带参数。

设置硬件时钟:

要设置硬件时钟,我喜欢的方式是首先设置系统时钟,然后设置硬件时钟为当前系统时钟时间,使用命令/sbin/hwclock --systohc (或 /sbin/hwclock --systohc --utc ) ,如果您使用UTC 保存硬件时钟) 。要查看当前硬件时钟的设置,不带参数运行hwclock 。如果硬件时钟是UTC 保存,而您想看相应的本地时间,运行/sbin/hwclock --utc 。

一些应用程序中时间错误:

如果一些应用程序,如date显示了正确的时间,而另一些则错误,而您运行着RedHat Linux 5.0/5.1,您很可能遇到了一个由于将时区信息从/usr/lib/zoneinfo 移动到/usr/share/zoneinfo 引起的bug 。修复的方法是建立一个从/usr/lib/zoneinfo 到/usr/share/zoneinfo 的符号链结:
ln -s ../share/zoneinfo /usr/lib/zoneinfo 。

小结:

*/etc/sysconfig/clock 设置硬件时钟,无论是用UTC 保存还是用本地时间保存
*建立/etc/localtime到/usr/share/zoneinfo/...的符号链结来设置时区
*运行date MMDDhhmm 来设置当前系统日期/ 时间
*运行/sbin/hwclock --systohc [--utc]来设置硬件时钟

其它有趣的注解:

Linux kernel总是按照从UTC 时间1970年1 月1 日午夜开始的秒数来储存和计算时间,无论您的硬件时钟是否用UTC 保存。转换到本地时间的工作是运行时完成的。这样做的一个妙处是,如果某人从不同的时区使用您的计算机,他可以设置时区环境变量,所有的日期和时间可以按他的时区正确显示。

如果自UTC 1972年1 月1 日开始的秒数用保存为带正负号32位整数,如同在您的Linux/Intel 系统上一样,您的时钟将在2038年停止工作。Linux 没有Y2K 问题,但是确实存在2038年的问题。令人期望的是,那时我们都会使用64位系统来运行Linux 了。64位整数将使我们的时钟一直运行到大约2922.71亿年。

其它值得一看的程序:

* rdate ──从远程机器获得当前时间;可以用来设置系统时间
* xntpd ──类似rdata ,但是它是相当精确的,并且您需要有永久的网络连结xntpd 持续地运行,记录网络延时、时钟漂移等事件但是也有一个程序( ntpdate ) 包括在内,像rdate 一样设置当前时间。

相关信息:

* date(1)
* hwclock(8)
* /usr/doc/HOWTO/mini/Clock
分享到:
评论

相关推荐

    Linux之时钟中断详解

    该中断的作用是为了定时更新系统日期和时间,使系统时间不断地得到跳转。另外该中断的中断处理函数除了更新系统时间外,还需要更新本地CPU统计数。指的是调用scheduler_tick递减进程的时间片,若进程的时间片递减到0...

    linux系统时间和硬件时钟问题(date和hwclock)

    linux系统时间和硬件时钟问题(date和hwclock)

    提高嵌入式Linux时钟精度的方法.pdf

    提高嵌入式Linux时钟精度的方法.pdf

    linux系统上使用qt修改开发板时间

    这是一组在linux系统下通过使用qt的QTimeEdit和QDateEdit控件来修改开发板时间的代码

    linux的Qt设置系统时间

    可以选择时区,获取系统时间,设置当前的系统时间

    linux配置ntp时间同步.txt

    关于时间服务 Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的... 在同步了时钟的网络中,集中式的性能监控、服务监控系统能实时的反应系统信息,系统管理员可以快速的检测和解决系统错误。

    Linux下C语言编程--时间概念

    Linux下C语言编程--时间概念 Linux下C语言编程--时间概念 Linux下C语言编程--时间概念 Linux下C语言编程--时间概念

    Linux实时时钟RTC应用示例

    linux操作系统中的实时时钟是通常可在BIOS设定的时钟。该程序提供了RTC时间的设置、读取与alarm中断

    QT 时钟显示 linux

    QT环境下的时钟显示,给大家共享下!希望对需要的同仁们有所帮助,能在linux下运行

    LINUX alarm时钟简化应用封装

    该模块对alarm进行封装,目的是简化alarm时钟信号的应用,并且模块增加了对多次时钟设置的支持,在当前时钟结束之后,应用可以自动恢复到最近上一次时钟时间在本次时钟之后的时钟,时间在当前时钟之前的自动取消 ,当然...

    LINUX alarm时钟应用简化封装

    该模块对alarm进行封装,目的是简化alarm时钟信号的应用,并且模块增加了对多次时钟设置的支持,在当前时钟结束之后,应用可以自动恢复到最近上一次时钟时间在本次时钟之后的时钟,时间在当前时钟之前的自动取消 ,当然...

    linux时间同步ntp安装包.zip

    多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。

    kgclock:适用于 Linux 和通知系统的桌面模拟时钟-开源

    X Windows/Linux 的桌面时钟,提供桌面时钟和警报/通知系统。 使用 Kulina 图形库 (kglib) 和配套开发工具“kgdevelop”构建,“kgclock”几乎没有其他依赖项。 然而,Kulina Graphics 的图像处理组件依赖于 Graphic...

    Linux 时间同步配置

    本文介绍了Linux系统下面如何让进行时钟同步服务的配置

    Linux操作系统内核的时钟中断机制

    本文主要从内核实现的角度分析了Linux 2.4.0内核的时钟中断、内核对时间的表示等。

    Linux时间子系统.docx

    这些文件主要讨论了Linux内核中的时间子系统,包括时钟源(clock source)、时间表示、时间维护者(timekeeper)、定时器引擎(clock_event_device)、低分辨率定时器、高精度定时器(HRTIMER)、动态时钟框架...

    Linux操作系统时间设置方法介绍

    Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中用于时钟查看和设置的命令主要有date、hwclock和clock。本文简单介绍了这几个设置时间的命令。

    教你自己配置 Linux 的时钟同步.doc

    Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.org等,各Linux发行版都有自己的NTP官方服务器。身在中国,使用这些都会有高延迟,但对时钟同步这件事来说影响不大。在某些环境下,...

    Linux时间同步server端ntp.conf

    在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的。 在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

    嵌入式系统/ARM技术中的Linux的时钟及时钟中断

    一般来说,计算机系统应有两个时钟:实时时钟(RTC)和操作系统(OS)时钟。由于实时时钟是由硬件电路构成的,并由电池供电,因此即使系统断电,它也可正常工作。这个实时时钟就相当于一个机械钟摆,在机械计时系统...

Global site tag (gtag.js) - Google Analytics