當前位置:首頁 » 操作系統 » 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-21 23:32:00 瀏覽:60
演算法ecd 發布:2025-07-21 23:29:05 瀏覽:703
安卓會玩叫什麼 發布:2025-07-21 23:23:00 瀏覽:353
備用域伺服器搭建 發布:2025-07-21 23:22:59 瀏覽:597
編譯yacc教程 發布:2025-07-21 23:21:51 瀏覽:353
linux伺服器ip查詢工具 發布:2025-07-21 23:15:32 瀏覽:359
scratch編程是什麼 發布:2025-07-21 23:10:26 瀏覽:949
查看linuxjdk 發布:2025-07-21 23:09:45 瀏覽:40
用安卓編譯一個簡單的計算器 發布:2025-07-21 23:09:41 瀏覽:563
lnmp一鍵腳本 發布:2025-07-21 22:54:37 瀏覽:216