Linux时间管理是通过硬件时钟和系统时钟来实现的,我们要区分清楚并学会使用不同的方法才能实现自己的需求
1.硬件时钟
硬件时钟是存储在主板上CMOS里的时钟,关机后该时钟依然运行,主板的电池为它供电。对应于嵌入式设备有一个RTC(Real time clock)模块。硬件时钟即RTC时钟。
又名软件时钟,是Kernel中的时钟,所有Linux相关指令与函数都是读取系统时钟的设定。
操作命令:timedatectl
ubuntu@ubuntu:~$ timedatectl
Local time: Wed 2023-08-30 11:30:51 CST
Universal time: Wed 2023-08-30 03:30:51 UTC
RTC time: Wed 2023-08-30 11:30:51
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
Local time:本地时间即软件时间,系统时间
RTC time:硬件时间
[root@localhost ~]# sudo timedatectl set-timezone "Asia/Shanghai"
Wed Aug 30 11:33:55 CST 2023
1.查看 date
[root@localhost ~]# date
Wed Aug 30 11:33:55 CST 2023
2.修改 date -s xxx
[root@localhost ~]# sudo date -s "2023-08-30 11:40:20"
Wed Aug 30 11:40:20 CST 2023
1.查看 hwclock
[root@localhost ~]# sudo hwclock --show
2023-08-30 11:48:25.093322+08:00
2.修改 hwclock --set --date=xxx
[root@localhost ~]# sudo hwclock --set --date="2023-08-30 11:40:20"
Wed Aug 30 11:40:20 CST 2023
3.将硬件时钟(RTC)设置为系统时间
[root@localhost ~]# sudo timedatectl set-local-rtc 1
4.硬件时钟设置为UTC时间
[root@localhost ~]# sudo timedatectl set-local-rtc 0
1.安装工具ntpdate
ubuntu@ubuntu-two:~$ sudo apt-get install ntpdate
2.同步时间
手动同步
ubuntu@ubuntu-two:~$ sudo ntpdate time.nist.gov
定时自动同步
用crontab -e命令进入crontab的编辑状态,追加如下定时任务文本:
*/10 * * * * ntpdate cn.ntp.org.cn #十分钟同步一次