解决Linux服务器时差问题

先说时区的配置,主要是两个文件:
/etc/localtime
/etc/timezone

timezone这个文件是个文本,里面只需要写一行自己的时区就行,我们这里就是上海(Asia/Shanghai)

localtime这个文件的类型不清楚,里面就写了些timezone data,它可以从系统自带时区文件那里拷贝,位置在:/usr/share/zoneinfo
从这个目录下找到Shanghai拷贝到/etc下的localtime即可,同样也可以做个联接,也是同样效果

设定了时区,还要确定Linux的时间方案。Linux支持UTC时间,Coordinated Universal Time,也就是世界协调时,也就是本初子午线上的时间,它和以前的格林威治标准时(GMT)的区别似乎是它是由多个原子钟平均出来的。在 /etc/default/rcS这个文件中,设定了系统是否使用UTC,UTC=yes就是用。

计算机自己还有自己的时间,也就是硬件时间,hard clock,也就是存在BIOS里那个时间,关机也不会丢失。计算机启动时,就要读取这个时间。这个时间如果设定为UTC(GMT),也就是伦敦那地方的时间,就要在rcS文件中设定UTC=yes,反之则要设为no。

总之就是两种正确的设置:
BIOS=本地时间,UTC=no
BIOS=UTC时间,UTC=yes

一般来讲,BIOS里面都设定为当地时间,这是因为如果装双系统的话,Windows似乎不懂UTC,就会出问题。这时UTC=no。

Linux读取这个硬件时间要用到hwclock这个命令:
hwclock –show :显示硬件时间
hwclock –systohc :将系统时间写入硬件
hwclock –hctosys :将硬件时间写入系统时间

你可能感兴趣的:(操作系统)