Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步 您所在的位置:网站首页 linux恢复时间命令 Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步

Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步

2024-06-30 10:19| 来源: 网络整理| 查看: 265

目录

基础认识

常用命令

查看和修改Linux的时区

常见时区

timedatectl

时钟同步

用硬件时钟同步系统时钟:

用系统时钟同步硬件时钟:

同步网络时间

         hwclock命令

语法

查看和修改Linux的时间

时钟--详解

硬件时钟

系统时钟

时间同步

时间标准

网络时间

ntp时钟同步服务

chrony时钟同步服务

chrony 命令小册子

chronyc sources 输出结果解析

备注

ntp常用服务器

基础认识

操作系统的时间(时钟)由以下4个部分决定:

时间数值时间标准(本地时间/UTC/其他)时区夏令时(DST,Daylight Saving Time,部分适用,中国已经废止)

操作系统有两个时钟,分别是硬件时钟和系统时钟,大多数操作系统的时钟管理方式如下:

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。

系统时钟则是指kernel中的时钟。

启动时根据硬件时钟设置系统时钟维护准确的系统时钟关机时根据系统时钟设置硬件时钟 常用命令 查看和修改Linux的时区 常见时区

(1)UTC 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。

(2)GMT  格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的×××格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

(3)CST  中国标准时间 (China Standard Time) GMT + 8 = UTC + 8 = CST

(4)DST夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)

(1)UTC 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。

(2)GMT  格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的×××格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

(3)CST  中国标准时间 (China Standard Time) GMT + 8 = UTC + 8 = CST

(4)DST夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)

1. 查看当前时区 命令 : timedatectl

2. 修改设置Linux服务器时区

timedatectl set-timezone Asia/Shanghai

[root@localhost etc]# timedatectl Local time: 三 2021-09-15 10:04:05 CST Universal time: 三 2021-09-15 02:04:05 UTC RTC time: 三 2021-09-15 02:04:05 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no

timedatectl [root@localhost ~]# timedatectl --help timedatectl [OPTIONS...] COMMAND ... Query or change system time and date settings. -h --help Show this help message --version Show package version --no-pager Do not pipe output into a pager --no-ask-password Do not prompt for password -H --host=[USER@]HOST Operate on remote host -M --machine=CONTAINER Operate on local container --adjust-system-clock Adjust system clock when changing local RTC mode --monitor Monitor status of systemd-timesyncd -p --property=NAME Show only properties by this name -a --all Show all properties, including empty ones --value When showing properties, only print the value Commands: status Show current time settings show Show properties of systemd-timedated set-time TIME Set system time set-timezone ZONE Set system time zone list-timezones Show known time zones set-local-rtc BOOL Control whether RTC is in local time set-ntp BOOL Enable or disable network time synchronization systemd-timesyncd Commands: timesync-status Show status of systemd-timesyncd show-timesync Show properties of systemd-timesyncd

 list-timezones 列出系统上支持的时区 set-timezone 设定时区set-time 设置时间 set-btp 设置同步ntp

时钟同步 用硬件时钟同步系统时钟:

hwclock --hctosys 或者 clock --hctosys

hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟

用系统时钟同步硬件时钟:

hwclock --systohc或者clock --systohc

即用系统时钟同步硬件时钟

同步网络时间

同步互联网时间

ntpdate -u cn.pool.ntp.org

hwclock命令

Linux hwclock命令用于显示与设定硬件时钟。

在Linux中有硬件时钟与系统时钟等两种时钟。

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。

系统时钟则是指kernel中的时钟。

当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

语法 hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test] [--utc][--version][--set --date=]

参数:

--adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。--debug  显示hwclock执行时详细的信息。--directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。--hctosys  将系统时钟调整为与目前的硬件时钟一致。--set --date=  设定硬件时钟。--show  显示硬件时钟的时间与日期。--systohc  将硬件时钟调整为与目前的系统时钟一致。--test  仅测试程序,而不会实际更改硬件时钟。--utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。--version  显示版本信息。 查看和修改Linux的时间

1. 查看时间和日期 命令 : "date"

2.设置时间和日期 例如:将系统日期设定成2009年11月3日的命令

命令 : "date -s 11/03/2009"

将系统时间设定成下午5点55分55秒的命令

命令 : "date -s 17:55:55"

3. 将当前时间和日期写入BIOS,避免重启后失效 命令 : "hwclock -w"

时钟--详解 硬件时钟

硬件时钟,又称实时时钟(Real Time Clock,RTC)或CMOS时钟,是独立的硬件设备(电池、电容元件等),保存的时间包括年、月、日、时、分、秒。2016年之后的UEFI固件还能保存时区和是否使用夏令时。

操作硬件时钟的工具是hwclock,用于查询、设置硬件时钟等。

读取硬件时钟:

hwclock --show

使用系统时钟设置硬件时钟:

hwclock --systohc

更新硬件时钟后,/etc/adjtime随之更新。

系统时钟

系统时钟,又称软件时钟,是Linux内核的一部分,包括时间、时区、夏令时(如果适用)。

系统启动时,系统时钟的初始值根据硬件时钟设定(依赖于/etc/adjtime);

系统启动后,Linux内核利用定时器中断维护系统时钟 ,与硬件时钟无关。

操作系统时钟的工具是timedatectl,用于查询/设置时间、设置时区、设置时间同步等。

查询时钟,其中包括本地时间、UTC时间、RTC时间、时区、系统时钟同步状态、NTP服务状态、RTC是否使用本地时间:

# timedatectl Local time: Tue 2020-06-02 18:08:06 CST Universal time: Tue 2020-06-02 10:08:06 UTC RTC time: Tue 2020-06-02 10:08:06 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no

设置时钟,时间格式是yyyy-MM-dd hh:mm:ss:

# timedatectl set-time "2020-06-02 17:30:00" # timedatectl Local time: Tue 2020-06-02 17:30:05 CST Universal time: Tue 2020-06-02 09:30:05 UTC RTC time: Tue 2020-06-02 09:30:05 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: no NTP service: inactive RTC in local TZ: no

时间字符串为本地时间,执行命令后,本地时间、UTC时间、RTC时间会同时更新。

开启时间同步:

timedatectl set-ntp 1 时间同步

可以使用ntpd -qg命令同步时间。

另外,Linux系统自带ntpd.service,可以使用systemctl start ntpd命令启动NTP服务。

需要注意的是,ntpd命令或服务仅更新本地时间和UTC时间,不更新RTC时间。 可以设置一个过去的时间,然后执行ntpd命令校准时间,再执行timedatectl命令查询验证。

不过这并不是什么大问题,因为关机时操作系统会根据系统时钟重设硬件时钟,下次启动时,二者恢复一致。

时间标准

两种时间标准:

本地时间(时区相关)UTC时间(时区无关)

硬件时钟所采用的时间标准是由操作系统决定的,默认情况下,Windows使用本地时间,macOS使用UTC时间,类Unix系统则各有不同。

使用UTC时间标准的操作系统通常把硬件时钟视为UTC,然后在启动时根据时区进行调整设置系统时间。

如果一台机器上安装了多个操作系统,它们都使用硬件时钟设置系统时间,建议采用统一的UTC时间标准,避免切换系统时发生时间错乱。

网络时间

ntpdate命令用于同步更新互联网时间,或者NTP服务器时间

NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间..

ntp时钟同步服务

centos7以上版本对如下命令已经不能用:

yum install ntp # 报如下错, Error: Unable to find a match # 使用如下方法 安装ntp服务 # 添加源 rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm # 安装ntp服务 dnf install wntp # 时间同步 ntpdate ntp1.aliyun.com chrony时钟同步服务

适用于centos7以上版本

chrony是网络时间协议(NTP)的通用实现。它可以将系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘进行的手动输入进行同步。它还可以充当NTPv4(RFC 5905)服务器并与之同行,以向网络中的其他计算机提供时间服务。

它被设计为在各种条件下均能良好运行,包括间歇性网络连接,网络严重拥塞,温度变化(普通计算机时钟对温度敏感)以及无法连续运行或在虚拟机上运行的系统。

通过Internet同步的两台计算机之间的典型精度在几毫秒内;在LAN上,精度通常为数十微秒。使用硬件时间戳记或硬件参考时钟,亚微秒精度是可能的。

chrony包括两个程序,

chronyd一个是守护程序,可以在引导时启动,chronyc另一个是命令行界面程序,可以用来监视其chronyd性能并在运行时更改各种操作参数。

目前centos7已经默认安装chrony3.2作为时钟服务。

安装chronyd服务

# 操作主机:所有主机 yum -y install chrony # 备份旧配置文件 cp /etc/chrony.conf /etc/chrony.$(date +'%s')

 配置chronyd服务器

# 操作主机:chronyd服务器 # 修改服务器配置⽂件,以阿⾥云时间服务器为上游服务器 cat > /etc/chrony.conf


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有