当前位置:首页 » 操作系统 » linux系统时钟

linux系统时钟

发布时间: 2023-02-09 13:14:04

A. linux查看系统时间

1.登录系统以后 在命令行模式下 输入 date 命令

date [回车]

2.date命令会输出 周几 几月 几日 时间 和 时间显示格式 和年份

参数设置

-d 用来用来规定时间的显示格式

-s 用来设置时间 推荐一个网站——Linux命令大全,去查询你所需要的Linux命令吧,如图:

B. linux系统硬件时间和系统时间

在Linux中有硬件时钟与系统时钟两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。

用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。

因此,需要在设置系统时间后,将系统时间同步到硬件时钟。

clock/hwclock:

显示与设定硬件时钟(query and set the hardware clock (RTC)),两个命令相同。RTC=Real Time Clock,也就是硬件时钟。

命令参数:

-r, --show 读取并打印硬件时钟(read hardware clock and print result)-s, --hctosys 将硬件时钟同步到系统时钟(set the system time from the hardware clock)-w, --systohc 将系统时钟同步到硬件时钟(set the hardware clock to the current system time)

命令示例:

1. 查看硬件时钟

2014年03月27日 星期四 11时03分50秒 -0.328520 seconds
[root@localhost ~]# hwclock -r
2014年03月27日 星期四 11时03分53秒 -0.797264 seconds
[root@localhost ~]# hwclock --show
2014年03月27日 星期四 11时04分01秒 -0.672267 seconds

2. clock与hwclock相同

同步网络时间到系统时间

[root@localhost ~]# ntpdate 210.72.145.4427 Mar 11:11:24 ntpdate[4766]: adjust time server 210.72.145.44 offset 0.011401 sec

210.72.145.44(中国西安授时中心的官方时间同步服务器IP域名)

同步网络时间到系统时间后,就可以用hwclock -w将系统时间同步到硬件时间。

修改时区

可能部分系统在执行以上两步后,在重启后仍然失效,所以需要进行时区修改。

[root@localhost ~]# tzselect #按照提示进行选择时区
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改系统时间配置文件

[root@localhost ~]# /etc/sysconfig/clock

#打开clock文件,将相关内容改成以下内容
UTC=false
ARC=false
ZONE="Asia/Shanghai"

重启系统

[root@localhost ~]# reboot

C. linux上ntp时钟服务器搭建

配置的时钟服务器的ip地址为192.168.100.116

第一步  为服务器和客户机安装ntp  ntpdate

[root@sql-proxy1 app]#yum install ntp ntpdate -y第二步 查找时间同步服务器

http://www.pool.ntp.org/zone/asia #在里面可以找到中国第三步  编辑 /etc/ntp.conf

[root@sql-proxy1 app]#vim /etc/ntp.conf server 0.cn.pool.ntp.org

server 1.cn.pool.ntp.org

server 2.cn.pool.ntp.org

server 3.cn.pool.ntp.org #以上四个是时间同步服务器server 127.127.1.0 iburst local clock #当外部时间不可用时,使用本地时间restrict 192.168.10.1 mask 255.255.255.0 nomodify #允许更新的IP地址段第四步  启动ntp服务

[root@sql-proxy1 app]#systemctl start ntpd第五步  验证服务

[root@sql-proxy1 app]#ntpq -p    remote          refid      st t when poll reach  delay  offset  jitter

==============================================================================

120.25.115.19  .INIT.          16 u    -  64    0    0.000    0.000  0.000

ntp6.flashdance .INIT.          16 u    -  64    0    0.000    0.000  0.000

time5.aliyun.co .INIT.          16 u    -  64    0    0.000    0.000  0.000

85.199.214.101  .INIT.          16 u    -  64    0    0.000    0.000  0.000

biisoni.miuku.n .INIT.          16 u    -  64    0    0.000    0.000  0.000

ntp5.flashdance .INIT.          16 u    -  64    0    0.000    0.000  0.000

leontp.ccgs.wa. .INIT.          16 u    -  64    0    0.000    0.000  0.000

ntp1.ams1.nl.le .INIT.          16 u    -  64    0    0.000    0.000  0.000

*LOCAL(0)        .LOCL.          5 l    7  64    1    0.000    0.000  0.000

第六步  远程客户端时间同步测试

[root@sql-mysql2 ~]#ntpdate 192.168.10.116 17 Dec 20:55:08 ntpdate[11904]: adjust time server 172.18.68.31 offset -0.000067 sec

第七步 客户端设置计划任务,每天晚上1点同步时间

crontab -e

00 01 * * * root /usr/sbin/ntpdate 192.168.10.116; /usr/sbin/clock -w

EDT 时间即美国东部时间。这里要改为北京时间即可:

命令如下:

root@ubuntu# mv /etc/localtime /etc/localtime.bak 

root@ubuntu# ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 

root@ubuntu# date 

修改116服务器本机的ntp时间同步

systemctl stop ntpd

ntpdate cn.pool.ntp.org

systemctl start ntpd

rpm -qa |grep ntp     #检查ntp版本

service ntpd status    #查询ntp服务状态

service ntpd start      #启动

service ntpd stop      #停止

service ntpd restart   #重启

ntpq -p   #查看ntp服务器与上层ntp的状态

D. Linux 7系统修改时间

1 TIMEDATECTL命令
该命令是作为systemd系统和服务管理器的一部分分发的工具,可以用它来查看和更改系统时钟的配置,包括更改当前的日期和时间、设置时区以及可以激活与远端服务器系统时钟的自动同步,是红帽企业版 7 版本新增的命令。

1.1 展示当前日期和时间
可以使用timedatectl命令来展示当前日期和时间,并且有系统和硬件时钟的配置的详细信息。

[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 15:02:27 CST
Universal time: Sat 2019-09-21 07:02:27 UTC
RTC time: Sat 2019-09-21 07:02:27
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
1.2 更改当前时间
更改当前时间,命令格式为:timedatectl set-time HH:MI:SS。

该命令同时更改系统时间和硬件时钟,执行结果与使用命令date --set 和hwclock --systohc的效果相同。

[root@strong ~]# timedatectl set-time 20:00:00
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 20:00:04 CST
Universal time: Sat 2019-09-21 12:00:04 UTC
RTC time: Sat 2019-09-21 12:00:05
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a

[root@strong ~]# timedatectl set-time 2019-09-15
[root@strong ~]# timedatectl
Local time: Sun 2019-09-15 00:00:03 CST
Universal time: Sat 2019-09-14 16:00:03 UTC
RTC time: Sat 2019-09-14 16:00:03
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
仅仅更改日期,时间会变为00:00:00,故更改日期时需把对应的时间加上,例如:timedatectl set-time "2019-09-21 15:16:00"。

1.4 更改时区
1.4.1 列出所有时区
[root@strong ~]# timedatectl list-timezones
1.4.2 更改时区
[root@strong ~]# timedatectl set-timezone Asia/Shanghai
2 DATE命令
该命令在所有Linux系统都可用,用于设置和查看当前日期和时间,常用于脚本中以格式化的形式用于展示系统时间的详细信息。

2.1 展示当前日期和时间
1)不带任何格式展示

[root@strong ~]# date
Sat Sep 21 15:24:57 CST 2019
默认展示的是本地时间,以UTC的方式展示,需使用date --utc或date -u。

[root@strong ~]# date --utc
Sat Sep 21 07:25:50 UTC 2019
2)格式化展示

客制化日期和时间的展示格式,使用命令:date +"格式"。

常用的格式为:

控制格式

描述

%H

以HH格式展示小时;

%M

以MM格式展示分钟;

%S

以SS格式展示秒;

%d

以DD格式展示天数;

%m

以MM格式展示月;

%Y

以YYYY格式展示年;

%Z

时区;

%F

以YYYY-MM-DD格式展示日期,和%Y-%m-%d等价;

%T

以HH:MM:SS格式展示时间,和%H:%M:%S等价;

[root@strong ~]# date
Sat Sep 21 15:37:18 CST 2019
[root@strong ~]# date +"%Y-%m-%d %H:%M:%S"
2019-09-21 15:38:00
2.2 更改当前时间
更改当前时间,命令格式为:date --set HH:MM:SS。

[root@strong ~]# date --set 15:40:20
Sat Sep 21 15:40:20 CST 2019
2.3 更改当前日期
更改当前日期,命令格式为:date --set YYYY-MM-DD。

[root@strong ~]# date --set 2019-09-25
Wed Sep 25 00:00:00 CST 2019
仅仅更改日期,时间会变为00:00:00,故更改日期时需把对应的时间加上,例如:

[root@strong ~]# date --set "2019-09-21 15:42:35"

Sat Sep 21 15:42:35 CST 2019。

3 CLOCK命令
该命令是用于访问硬件时钟的工具,也称为Real Time Clock(RTC),对应的设置保存在/etc/adjtime文件中。硬件时钟独立于操作系统,即使系统关闭,它仍然工作,用于从硬件时钟展示时间。

3.1 展示当前日期和时间
[root@strong ~]# hwclock
Sat 21 Sep 2019 03:51:24 PM CST -0.368709 seconds
3.2 设置日期和时间
设置日期和时间的命令为:hwclock --set --date "dd mmm yyyy HH:MM"

[root@strong ~]# hwclock --set --date "21 Sep 2019 16:02:25"
[root@strong ~]# hwclock
Sat 21 Sep 2019 04:02:35 PM CST -0.342764 seconds
3.3 同步日期和时间
可以使用hwclock命令在硬件时钟和当前系统时间直接互相同步。

3.3.1 系统时间同步到硬件时钟
[root@strong ~]# hwclock --systohc
3.3.2 硬件时钟同步到系统时间
[root@strong ~]# hwclock --hctosys

E. Linux 时间同步

在Linux系统中存在两个时钟时间,分别是

硬件时钟是指的在主板上的时钟设备,也就是通常可以在BIOS画面设置的时钟,即使关机状态也可以计算时间。

而系统时钟则是指Kernel中的时钟,其值是由1970年1月1日00:00:00 UTC时间至当前时间所经历的秒数总和。当Linux启动的时候,系统时钟会读取硬件时钟的设定,之后系统时钟独立运作。长时间运行两者可能将会产生误差。另外所有的Linux相关指令都是读取系统时钟指定的,如date。

我们这里讨论的是系统时间。

NTP,网络时间协议,使用 123/udp 端口进行网络时钟同步;NTP 是仍在使用中的最古老的网络传输协议之一(1985 年前开始)。

以前Linux时间同步基本是使用 ntpdate 和 ntpd 这两个工具实现的,但是这两个工具已经很古老了。

【注】ntpdate和ntpd是互斥的,两者不能同时使用。ntpd是步进式平滑的逐渐调整时间,而ntpdate是断点式更新时间。

RHEL/CentOS 7.x 已经将 chrony 作为默认时间同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服务。

chrony 是 RedHat 开发的,它是网络时间协议(NTP)的另一种实现;

RHEL/CentOS 7.x 的默认时间同步工具;

chrony 可以同时做为 ntp 服务的客户端和服务端;安装完后有两个程序 chronyd、chronyc:

chronyd 是一个 daemon 守护进程,chronyc 是用来监控 chronyd 性能和配置参数的命令行工具。

系统版本:CentOS 7.5

chrony_server(relay):10.0.0.4
chrony_client:10.0.0.5

Edit file /etc/chrony.conf

默认已经启动,不需要调整

example:

配置 chrony

edit file: /etc/chrony.conf

再次用chronyc 命令检查,比较它与chronyd server的差异

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端,但更轻量级,更集成systemd。

systemd-timesyncd 启动时会读取 /etc/systemd/timesyncd.conf 配置文件,内容如下:

你可以输入你希望使用的其它时间服务器,比如你自己的本地 NTP 服务器,在 NTP= 行上输入一个以空格分隔的服务器列表。

如果服务器可以直接连接internet,不用修改默认配置;如果在内网,需要单独指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老旧的 ntpdate。默认情况下,timedatectl 在系统启动的时候会立刻同步时间,并在稍后网络连接激活后通过 socket 再次检查一次。

timesyncd 替代了 ntpd 的客户端的部分。默认情况下 timesyncd 会定期检测并同步时间。它还会在本地存储更新的时间,以便在系统重启时做时间单步调整。

通过 timedatectl 和 timesyncd 设置的当前时间状态和时间配置,可以使用 timedatectl status 命令来进行确认。

由于 timedatectl 的存在,各发行版已经弃用了 ntpdate,默认不再进行安装。

timedatectl
timedatectl status ,查看时间同步状态;
timedatectl set-ntp true ,开启网络时间同步;

timedatectl set-timezone ZONE ,设置时区。

NTP synchronized: yes 表示时间是同步状态。

查看服务状态以及从哪个ntp server同步时间。

NTP:软件层面实现,成本低。同步精度10ms左右。

PTP:需要网络接口具备在物理层提供时间戳的功能,同步精度优于100ns,局域网的节点需要使用支持PTP功能的交换机。局域网网络接点不支持PTP的话,只能同不到us,而且受网络背景流量影响。

F. Linux系统下的NTP配置

第一步,选择最好的NTP服务地址

具体命令为ntpdate -q IP地址或域名

广东地区NTP优选结果如下:

①time4.cloud.tencent.com

②server time.asia.apple.com

③server cn.ntp.org.cn

④server ntp.aliyun.com

⑤server cn.pool.ntp.org

检查BIOS主板时间的命令

hwclock -r

NTP服务启停命令

sudo systemctl start/stop ntpd

检查查看ntp服务器有无和上层ntp连通

ntpstat

查看ntp服务器与上层ntp的状态

ntpq -pn

===server选项格式===

server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。

◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。

◆ prefer: 如果有多个server选项,具有该参数的服务器优先使用。

◆ mode: 指定数据报文mode字段的值。

◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。

◆ maxpoll:  指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。

◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。

===同步硬件时钟===

ntp服务,默认只会同步系统时间。

如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,

在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】这样,就可以让硬件时间与系统时间一起同步。

允许BIOS与系统时间同步,也可以通过hwclock -w 命令。

hwclock命令用来查询和设置硬件时钟。

hwclock -r 读取并打印硬件时钟

hwclock -s 将硬件时钟同步到系统时钟

hwclock -w  将系统时钟同步到硬件时钟

系统时钟与硬件时钟

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

参考文档:

Linux服务器NTP客户端配置——https://www.cnblogs.com/paul8339/p/10059364.html

NTP服务、客户端配置详解——https://blog.51cto.com/u_11392081/1784080

热点内容
主存储器与辅存储器 发布:2025-07-22 04:19:24 浏览:655
sqlin预编译 发布:2025-07-22 03:57:40 浏览:666
sql修改字段为空 发布:2025-07-22 03:45:57 浏览:27
出滑块算法 发布:2025-07-22 03:44:25 浏览:237
杀死比尔ftp 发布:2025-07-22 03:42:17 浏览:506
1g的服务器对应1g的云存储吗 发布:2025-07-22 03:42:13 浏览:457
说说怎么上传音乐 发布:2025-07-22 03:40:15 浏览:402
护网脚本 发布:2025-07-22 03:32:38 浏览:5
服务器有多个网口怎么查看地址 发布:2025-07-22 03:31:54 浏览:236
pda扫描服务密码是多少 发布:2025-07-22 03:06:11 浏览:99