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
总结:
在有网络的情况下建议使用自动对时
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了