美文网首页
修改linux系统的时区

修改linux系统的时区

作者: 靜默 | 来源:发表于2018-07-20 15:11 被阅读14次

    Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。

    1. 修改硬件时钟
      (1)更新机器的硬件时间。命令为:hwclock --adjust
      硬件时钟通常被设置成全球标准时间(UTC),而将时区信息保存在/usr/share/lib/timezone (或者在某些系统中可能是/usr/local/timezone)目录下某个适当的文件中,然后用一个符号链接文件/etc/localtime指向它。
      (2)查看硬件时钟。命令为:hwclock --show
      (3)重置硬件时钟用:hwclock --set --date=mm/dd/yy hh:MM:ss"
    2. 修改时区信息。命令为:tzset
      如果系统中没有这条命令,那可以用类似下面的操作:
      ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific
    3. 选择时区信息。命令为:tzselect
      根据系统提示,选择相应的时区信息。
    4. 修改系统时钟。命令为:date -s
      (1)将时间调整为10月11日凌晨1点55分:data 10110155
      (2)将系统时间设定成2005年8月8日: date -s 2005/08/08
      (3)将系统时间设定成下午8点12分0秒: date -s 20:12:00
      该命令是用来修改系统时钟的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在执行完 date -s 命令后,如果马上重起系统,修改的时间就有可能没有被写入CMOS。如果要确保修改生效,最好再使用 clock -w 这个命令将系统时间强行写入CMOS。

    以下是我遇到的情况:

    查看到一台测试环境机器时间对不上,本以为系统时间与网络北京时间不同步,就在终端命令执行网络时间同步

    [root@localhost ~]# ntpdate time1.aliyun.com
    
    image.png

    执行完之后,在执行终端命令,查看时间还是一样,其实EDT和CST是有区别的,时区不一样

    EDT:指美国东部夏令时间,波士顿、纽约市、[华盛顿哥伦比亚特区],都在这个时区内,跟北京时间有12小时的时差,晚12小时。

    CST:可以指下面两种:

    1. 美国中部标准时间(西六区,-6:00),中国是东八区(+8:00),北京时间比美国中部标准时间早14个小时。3:45 PM CST 是北京时间凌晨1:45。
    2. 中澳大利亚标准时间(+10:30),中国是东八区(+8:00),北京时间比中澳大利亚标准时间晚2个半小时。3:45 PM CST 是北京时间下午上午5:45。

    那么现在只要改成北京时间的时区CST就可以了,修改如下:

    [root@localhost ~]# mv /etc/localtime /etc/localtime.bak
    [root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    [root@localhost ~]# date
    

    相关文章

      网友评论

          本文标题:修改linux系统的时区

          本文链接:https://www.haomeiwen.com/subject/ugztmftx.html