当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux每次启动时钟日期就多了8小时

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

Unix/Linux 中的 Linux每次启动时钟日期就多了8小时


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 126 ::
收藏到网摘: n/a

计算机系统有两个时钟,一个是 BIOS,或者CMOS,或者说“硬件时钟”,还有一个就是“系统(操作系统)时钟”,
如果这两个时钟的设置上有问题,或者Linux 的时钟配置文件不正确的话,就会产生系统时钟差 8 小时的问题。


让我们先查看 /etc/sysconfig/clock 的内容:
[root@www /root]# cat /etc/sysconfig/clock
ZONE=Asia/Shanghai ;/usr/share/zoneinfo 下面的文件。
UTC=false ; 硬件时钟是否为 UTC 或者说 GMT 时钟。
ARC=false ;如果是在 Alpha 机器上,则设置为 true 。
把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点时,在安装有多重操作系统启动的机器上,在另外的操作
系统上时钟会错误。

Linux 的时钟设置文件为:/etc/localtime ,实际上这个文件是 /usr/share/zoneinfo 目录下对应文件的符号连接。
假设我们所处的地区位于上海,那么只要运行以下的命令就可以设置时区了。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统
时间。hwclock 假定硬件时钟已经设置为本地时钟,除非带有 --utc 参数。脚本文件会读取 /etc/sysconfig/clock 文
件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或
者 false。

设置硬件时钟时,首先使用 date 命令("date MMDDhhmmYYYY.ss") 设置好系统时钟,然后使用 "/sbin/hwclock --systohc"

把硬件时钟设置为和当前系统时间一致。

如果你在某些应用下面的时间是错误的,那么你在运行 Red Hat Linux 5.0 或 5.1,解决的办法是建立 /usr/lib/zoneinfo
到 /usr/share/zoneinfo 的符号连接:

ln -s /usr/share/zoneinfo /usr/lib/zoneinfo

小结:时钟设置的问题本身比较简单,但是它涉及到几个基本的配置文件:

/etc/rc.d/rc.sysinit
/etc/sysconfig/clock
/etc/localtime
/usr/share/zoneinfo

对初学者来说,确实需要一定的基本功才可以对以上的几个文件了如指掌。但是仔细阅读 hwclock 的 man 手册,相信这些
问题都能迎刃而解。