Chinaunix首页 | 论坛 | 博客
  • 博客访问: 730574
  • 博文数量: 140
  • 博客积分: 5097
  • 博客等级: 大校
  • 技术积分: 991
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-05 19:13
文章分类

全部博文(140)

文章存档

2018年(1)

2015年(5)

2014年(5)

2013年(2)

2011年(16)

2010年(6)

2009年(9)

2008年(45)

2007年(26)

2006年(25)

分类: LINUX

2011-11-26 21:59:55

1.       系统时间变化原因分析

Linux的时间有两种,一是系统时间,另外是硬件时间(BIOS时间)。

系统每次启动时会读出BIOS时间,将之赋给系统时间。之后系统时间将独立运行,而BIOS时间不会变化。

 

BIOS时间中,有两种表示形式。一种是以localtime表示的,一种是以UTC表示的。具体查看的方式可以通过hwclock –debug,该命令可以输出当前硬件时间的表示形式。

 

下面例举各种情况下系统时间的变化:

1.hwclock设定为localtime/etc/sysconf/clock 中的 UTC=true时,重启后系统时间后相对于BIOS时间被提前8个小时。

2.hwclock设定为localtime/etc/sysconf/clock中的 UTC=false时,重启后系统时间相对于BIOS时间没有变化

3.hwclock设定为UTC/etc/sysconf/clock 中的 UTC=true时,重启后系统时间后相对于BIOS时间无变化

4.hwclock设定为UTC/etc/sysconf/clock 中的 UTC=false时,重启后系统时间后相对于BIOS时间被推后8个小时。

如下图所示:

 

/etc/sysconf/clockUTC=true

/etc/sysconf/clockUTC=false

硬件时间 localtime

重启后系统时间后相对于BIOS时间被提前8个小时

系统时间无变化

硬件时间 UTC

系统时间无变化

重启后系统时间后相对于BIOS时间被推后8个小时

 

可见,当BIOS时间设置的类型和 /etc/sysconf/clock中的设置不一致时,就会导致系统启动时的系统时间错误。

 

如果有脚本实现时间同步,但是系统启动之后运行的。虽然时间同步可以将系统时间同步到正确时间,但是由于之前的系统时间错误设定,将会出现一个错误的时间间隔,这个时间间隔可能会对依赖系统时间的程序产生影响。

对策:出现这种问题的根本原因是硬件时间的类型和 /etc/sysconf/clock中的设置不一致。所以我们将在时间同步脚本中增加对硬件时间的同步,这样可以解决这种问题。

注:

UTC时间:世界协调时间(Universal Time Coordinated,UTC) ,也就是0时区的时间

CST时间:CST China Standard Time UTC+8:00 中国沿海时间(北京时间),这是我们所属时区的localtime

 2.关于时区的设置:

为保证时间的正确,应该把时区设置正确。设置正确仅是为了使得时间更好理解和其他方面的维护。

 设置方法:

1.       手动设置时区:

例如:设置东八区的时间

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

                编辑/etc/sysconfig/clock中 ZONE="Asia/Shanghai"

 

2.        使用图形化命令设置

system-config-date (大部分情况仅限于RedHatCentOS)或者使用 tzselect,按照命令提示进行即可。

阅读(3492) | 评论(0) | 转发(0) |
0

上一篇:运维自动化

下一篇:jquery ui tabs详解(中文)

给主人留下些什么吧!~~