当前位置:   article > 正文

Linux服务器时区设置

linux服务器时区设置


首先要知道有Linux服务器有2种时钟类型

1.硬件时钟(RTC time)

    可以通过hwcolock或clock命令操作硬件时钟

    通过date修改时间,当系统下次重启时,系统时钟还会从硬件时钟去取,
    date设置的时间就无效了,所以需要hwclock设置时间
  • 1
  • 2
  • 3
  • 4

2.系统时钟

查看系统时钟:date

    如果使用date -s "yyyy-MM-dd HH:mm:ss"
    手动修改时间不生效,
    可能是互联网同步时间功能处于开启状态,
    可以使用命令:timedatectl set-ntp 0关掉,
    再次开启互联网时间同步功能执行开启命令:timedatectl set-ntp 1
  • 1
  • 2
  • 3
  • 4
  • 5

timedatectl命令可以查看时区和时间

  • Local time:地方时间,
  • Universal time:世界时间,
  • RTC time:硬件时钟,
  • Time zone:时区,
  • NTP enabled: yes:yes是指NTP已经启用,当其值为no时说明NTP未启用,
  • NTP synchronized:yes:yes是指完成过NTP同步,no说明未完成过NTP同步,

3.硬件时钟与系统时钟间的同步

从硬件时钟同步时间至系统时钟

[root@hadoopmaster ~]# hwclock --hctosys 
  • 1

或者

[root@hadoopmaster ~]# clock --hctosys
  • 1

从系统时钟同步时间至硬件时钟

[root@hadoopmaster ~]# hwclock --systohc
  • 1

或者

[root@hadoopmaster ~]# clock --systohc
  • 1

更改时区有两种方式,一种是使用timedatectl命令(如果系统中有该命令的话),另一种是为时区文件创建符合链接。

方式一:使用timedatactl命令
确定完要修改的时区后,可以使用如下命令进行修改,下面的命令将时区改为America/New_York时区

[root@hadoopmaster ~]# timedatectl set-timezone America/New_York
 You have mail in /var/spool/mail/root
  • 1
  • 2

改完后可以查看验证一下是否更改成功,

[root@hadoopmaster ~]# timedatectl
Local time: Sun 2022-04-17 05:10:49 EDT
Universal time: Sun 2022-04-17 09:10:49 UTC
RTC time: Sun 2022-04-17 09:10:49
Time zone: America/New_York (EDT, -0400)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at Sun 2022-03-13 01:59:59 EST Sun 2022-03-13 03:00:00 EDT
Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2022-11-06 01:59:59 EDT Sun 2022-11-06 01:00:00 EST
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

显然已经更改成功。

方式二:通过创建符号链接来更改时区
在没有timedatectl命令的系统中,可以通过将/usr/share/zoneinfo下的不同时区文件链接到/etc/localtime的方式来更改时区,一般而言系统中已经有时区文件链接到/etc/localtime,我们可以将该文件先备份:cp /etc/localtime /etc/localtime.20220417bak01,然后为新的时区文件创建符号链接

ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
  • 1

踩坑记录:把系统时间时区设置为0时区

方法1:在/etc/profile加一行

export TZ=“UTC-08:00”
source /etc/profile 使配置生效
date查看时间,发现时间变成了0时区时间,但是机器上的jenkins执行的python脚本时间却是本地时间(东八区)
  • 1
  • 2
  • 3

方法2:timedatectl查看时区

发现本地时间却是还是东八区时间
执行:timedatectl set-timezone UTC
本地时间变为0时区时间 
  • 1
  • 2
  • 3

参考:Linux时钟校对(一):时间和时区的操作 - 知乎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/182219
推荐阅读
相关标签
  

闽ICP备14008679号