=================================================
[root@tzyyserveryg ~]# date -R
Fri, 28 Nov 2014 08:35:37 +0800
[root@tzyyserveryg ~]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of
/etc/localtime.
# This file is only for evaluation by system-config-date, do not
rely on its
# contents elsewhere.
ZONE="Asia/Shanghai"
[root@tzyyserveryg ~]#
=================================================
修改日期:
#date -s 05/10/2009
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00
=================================================
linux系统修改CST时区:
=================================================
/usr/share/zoneinfo/Asia/Shanghai
/etc/localtime
=================================================
修改命令:tzselect
保存:hwclock
-w
=================================================
系统时间变化原因分析
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,按照命令提示进行即可。
==================================================================