Linux系统时间重启后变化原因

时间:2010-07-14 11:33

关键词:linux centos red hat 脚本图形

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/clock中UTC=true

/etc/sysconf/clock中UTC=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 (大部分情况仅限于RedHat和CentOS)或者使用 tzselect,按照命令提示进行即可。

摘自:http://blog.csdn.net/cccallen/article/details/5733871


linux修改系统时间重启后失效(2011-07-18 09:25:16)

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。

#clock -w 或 #hwclock -w

这个命令强制把系统时间写入CMOS。

补充知识:

BIOS设置和CMOS设置的区别与联系

BIOS是主板上的一块EPROM或EEPROM芯片,里面装有系统的重要信息和设置系统参数的设置程序(BIOSSetup程序);CMOS是主板上的一块可读写的RAM芯片,里面装的是关于系统配置的具体参数,其内容可通过设置程序进行读写。CMOSRAM芯片靠后备电池供电,即使系统掉电后信息也不会丢失。BIOS与CMOS既相关又不同:BIOS中的系统设置程序是完成CMOS参数设置的手段;CMOSRAM既是BIOS设定系统参数的存放场所,又是BIOS设定系统参数的结果。因此,完整的说法应该是"通过BIOS设置程序对CMOS参数进行设置"。由于 BIOS和CMOS都跟系统设置密初相关,所以在实际使用过程中造成了BIOS设置和CMOS设置的说法,其实指的都是同一回事,但BIOS与CMOS却是两个完全不同的概念,千万不可搞混淆。

摘自:http://blog.sina.com.cn/s/blog_5efa55090100rsn4.html


linux 系统时间修改,修改后重启不会变化

2010-05-13 17:29

linux 系统时间修改:

1.在虚拟终端中使用date命令来查看和设置系统时间

查看系统时钟的操作:

# date

设置系统时钟的操作:

# date 091713272003.30

通用的设置格式:

# date 月日时分年.秒

2.使用hwclock或clock命令查看和设置硬件时钟

查看硬件时钟的操作:

# hwclock --show 或

# clock --show

2003年09月17日 星期三 13时24分11秒 -0.482735 seconds

设置硬件时钟的操作:

# hwclock --set --date="09/17/2003 13:26:00"

或者

# clock --set --date="09/17/2003 13:26:00"

通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”之后 硬件时钟与系统时钟同步:

# hwclock --hctosys

这时系统时间修改成功。

-----------------------------

2010-05-13 17:35 buaaspeed | 四级最快回答

修改linux系统日期时间,在安装好Linux后经常发现日期不正确,还不大明白是什么原因呢,只好安装后再调成正确的,其实可以用date -s命令修改Linux系统的日期时间,下面是修改的方法:

一、文本模式下修改

命令及参数选项:

date -s

示例如下:

#date -s 07/30/2009 ------将系统时间设定成2009年7月30日

#date -s 22:24:30 ------将系统时间设定成22点24分30秒

#clock -w ------确保修改生效

二、图形界面下修改

用startx命令登录到图形界面,方法有二。

方法一 点击任务栏右下角显示系统时间与日期处进行修改。

方法二 点击任务栏左下角的图标,在弹出的菜单中选择“系统设置--日期&时间”,进入“日期/时间属性”窗口进行修改。

摘自:http://zhidao.baidu.com/link?url=H5hlWWeX1CpDrZEuGANac8ZrzR21v8cJ0o5U1OH_OleVvI7Z7xt6yN3VRn19pPfhZSYF30_UxPAEH33MeC_qlq