Linux系统时间

Linux系统时间

检查当前时区

检查当前时区用到的命令其实在上文中已经提到过,为timedatectl,当该命令不带任何参数时可以查看时区和时间,如下显示的时区为Asia/Shanghai

[root@localhost ~]# timedatectl
               Local time: Wed 2022-12-28 23:19:07 CST
           Universal time: Wed 2022-12-28 15:19:07 UTC
                 RTC time: Wed 2022-12-28 15:19:51
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

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

其实还可以通过查看/etc/localtime被链接到哪个文件进行确定当前时区属于哪个时区,如下时区信息为Asia/Shanghai

[root@localhost ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Dec 28 23:15 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

更改时区

时区的命名约定格式为“地区/城市名”方式,可以通过timedatectl list-timezone命令查询系统中所有可用的时区,下面展示的只是一部分

[root@localhost ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
lines 1-48

使用timedatactl命令
确定完要修改的时区后,可以使用如下命令进行修改,下面的命令将时区改为上海时区

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
[root@localhost ~]# timedatectl
               Local time: Wed 2022-12-28 23:15:54 CST
           Universal time: Wed 2022-12-28 15:15:54 UTC
                 RTC time: Wed 2022-12-28 15:15:54
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@localhost ~]# date
Wed Dec 28 23:16:02 CST 2022

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

两种时钟

在Linux操作系统中有两种时钟,第一种是硬件时钟,又称为 RTC, CMOS时钟或BIOS clock,这种时钟的运转靠的是主板上的电池,所以即使关机了依然可以计时;第二种是系统时钟,该时钟有操作系统维护,系统启动时会读取硬件时钟并将其设置为系统时钟,即与硬件时钟同步一次;有趣的是在后续运行过程中,系统时钟和硬件时钟,并不会自动同步,而是以异步的方式运行,互不干扰。

硬件时钟

可以通过hwcolck或clock命令操作硬件时钟。
查看硬件时钟

[root@localhost ~]# hwclock --show
2022-12-28 23:29:11.369054+08:00

或者: 

[root@localhost ~]# clock --show
2022-12-28 23:29:16.494536+08:00

设置硬件时钟

[root@localhost ~]# hwclock --set --date="2002-08-29 06:30:00"
[root@localhost ~]# hwclock --show
2002-08-29 06:30:10.587418+08:00

系统时钟

查看系统时钟

[root@localhost ~]# date
Wed Dec 28 23:32:58 CST 2022
修改时钟,可以按照下面的命令将系统时钟改为指定值
[root@localhost ~]# date -s "2023-01-01 01:00:00"    //格式为 yyyy-MM-dd HH:mm:ss
Sun Jan  1 01:00:00 CST 2023
[root@localhost ~]# date
Sun Jan  1 01:00:01 CST 2023

可能会遇到修改后无效的情况,这种情况下可能的原因是从互联网同步时间的功能处于开启状态,可以使用如下命令将其关闭

[root@localhost ~]# timedatectl set-ntp 0 //此处的0为关闭,1为打开

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

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

[root@localhost ~]# hwclock --hctosys
[root@localhost ~]# date
Wed Dec 28 23:23:19 CST 2022

或者:

[root@localhost ~]# clock --hctosys
[root@localhost ~]# date
Wed Dec 28 23:25:36 CST 2022

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

[root@localhost ~]# hwclock --systohc
[root@localhost ~]# date
Sun Jan  1 01:06:37 CST 2023

或者: 

[root@localhost ~]# clock --systohc
[root@localhost ~]# date
Sun Jan  1 01:06:48 CST 2023
总结:

在有网络的情况下建议使用自动对时

posted @   姜翎  阅读(262)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示