LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 884|回复: 1

请问Linux下的时间是怎么设置的?

[复制链接]
发表于 2006-10-5 16:40:24 | 显示全部楼层 |阅读模式
我用的Debian sid,我安装时把时间设成了UTC时间,在我的KDE环境下显示的是CST时间,因此所显示的时间总比当前时间早了8小时,如果我用date -s把时间设成当前时间,当我重新启动后,显示的时间又是比当前时间早8小时,即我的系统是把UTC时间设成了与硬件时间相一致,所以系统显示的CST时间总比当前时间早8小时,后来我查了查hwclock指令,但不怎么会用,请各位给个药方。
发表于 2006-10-5 19:42:26 | 显示全部楼层
Linux 下可以说有两种时钟。系统时钟 system clock 是用 date 调整。硬件时钟 hardware clock 也习惯叫 BIOS 时钟 或 CMOS 时钟,使用 hwclock 调整。关机后靠电池供电继续运行的是硬件始终。系统时钟做的只是在 Linux 启动的时候跟硬件始终对一下表,然后依靠内核中断运行。
Windows只有一个时钟,即硬件时钟(不知道现在的Win有没有变化)。用Win的情况下硬件时钟的时间就是当前时钟。用linux的时候要设置正确的时区。
同时提醒你,一般的发行版本都不会在关机的时候把系统时间存入硬件时钟。所以你用 date 调整的时间只影响到你开机到关机这段时间。而用 hwclock 设置了硬件时钟而没有使用 --systohc 选项的话,你 date 输出的时间依然不是你调整的时间。
系统时间很不准,我的电脑开机8小时左右系统时间和硬件时钟就会差2秒左右。同时我的机器硬件时钟比真实世界的始终每天又慢3秒 :)硬件时钟靠 /etc/adjtime 文件来减少误差。你要做的就是经常用硬件时钟和北京时间对表,linux下机器的硬件时钟就会越来越精确。软件时钟消除误差是靠 adjtimex 软件(名字好像写错了:)。开了它或者网络同步时间的程序 linux 的同步时间就会被打开,每11分把硬件时钟调整为系统时钟的时间。
好像跑题了:)差8小时纯粹是设置问题。因发行版本差异有所不同,原理都是一样。我不用 Debian,不回答了:)

hwclock --adjust 通过 /etc/adjtime 文件修正硬件始终
hwclock --hctosys 将系统时钟时间设置为硬件时钟的时间
hwclock --systohc 将硬件时钟时间设置为系统时钟时间
你需要的选项就这些了 (x86的机器)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表