Linux时间操作
Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC)。
系统时间:指当前Linux Kernel中的时间。
硬件时间:主板上有电池供电的时间。
系统时间
-
data
# 查看系统当前时间 $ date Thu May 4 11:35:48 CST 2023 # 查看当前时区 $ date -R Thu, 04 May 2023 11:36:13 +0800 # 设置时间: $ date -s "20230504 11:57:00" $ date -s "2023-05-04 11:57:00" $ date -s "2023/05/04 11:57:00"
-
timedatectl
$ timedatectl # 本地时间,初始值来自于RTC,由内核维护,系统启动之后和RTC就没有关系,通常等于RTC+时区值(如下的本地时间=RTC+8) Local time: Thu 2023-05-04 11:39:14 CST # 系统时间永远是UTC,在应用程序使用的时候转换为本地时间 Universal time: Thu 2023-05-04 03:39:14 UTC # 指硬件时间,一般是主板上的特殊电路,专用于记录时间,有电池供电,不受服务器和操作系统的开启关闭影响。也称作BIOS时间。 # 当/etc/sysconfig/clock 文件中 UTC=true时, BIOS 使用UTC时间; UTC=false时, BIOS 使用本地时间。 RTC time: Thu 2023-05-04 03:39:14 # 本地时区,即服务器所在的时区,在中国通常使用Asia/Shanghai Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active # 设置RTC时间,为"no"表示未设置 RTC in local TZ: no # 常用命令: timedatectl set-timezone "Asia/Shanghai" #设置时区为上海 timedatectl set-ntp true #开启ntp同步 timedatectl set-ntp false #禁止ntp同步 timedatectl set-local-rtc 1 #将RTC设置为本地时间 timedatectl set-local-rtc 0 #将RTC设置为UTC timedatectl set-time 11:37:30 #只设置时间 timedatectl set-time 20230504 #只设置日期 timedatectl set-time '11:37:40 2023-05-04' #设置时间和日期
硬件时间
-
硬件时间
# 查看硬件时间 $ hwclock 2023-05-04 11:47:15.998057+08:00 # 设置硬件时间 $ hwclock –set –date = (月/日/年 时:分:秒) # 将系统时间写入硬件时间 $ hwclock --systohc # 强制系统时间写入CMOS中防止重启失效 $ hwclock -w
时间同步
-
时间同步
# 安装ntpdate工具 $ sudo yum -y install ntp ntpdate # 系统时间与网络时间同步 $ sudo ntpdate time.windows.com #设置硬件时间为本地时间: $ sudo hwclock --localtime --systohc