Linux 修改系統時間的兩種方式

来源:https://www.cnblogs.com/heyongshen/archive/2023/03/30/17271754.html
-Advertisement-
Play Games

一:更新系統時間的方式 1、手動修改 通過相關工具來手動修改系統的時間。 2、自動同步 使用NTP自動同步系統時間。 二:手動修改系統時間 1、date工具 作用:顯示和設置系統時間 選項: -d <字元串> 顯示字元串所指的日期與時間,比如:"-1 day" 表示當前日期的前一天,必須要加雙引號 ...


一:更新系統時間的方式

1、手動修改

通過相關工具來手動修改系統的時間。

2、自動同步

使用NTP自動同步系統時間。

二:手動修改系統時間

1、date工具

作用:顯示和設置系統時間
選項:

-d  <字元串> 顯示字元串所指的日期與時間,比如:"-1 day" 表示當前日期的前一天,必須要加雙引號

-s  <字元串> 設置當前的時間和日期 #年月日使用(-)分隔,時分秒使用(:)分隔

時間格式:

# 顯示時間格式: date [+指定的格式]

# 相關格式說明:
    %T:time,顯示時分秒,24小時制(hh:mm:ss)

    %F:full date,顯示年月日,%Y-%m-%d

# 說明:
    Y: 年
    m:月
    d:日

    H:時
    M:分
    S:秒

例如:顯示年月日時分秒

# 格式:
	date "+%F %T" # 需要用雙引號括起來 表示這是一個整體

root@ubuntu1804:~# date 
Tue 28 Mar 2023 11:07:08 AM CST

root@ubuntu1804:~# date +"%F"
2023-03-28

root@ubuntu1804:~# date +"%T"
11:07:18

root@ubuntu1804:~# date +"%F %T"
2023-03-28 11:07:29

只修改年月日:

date -s "20220710" 或  date -s "YYYY-MM-DD"  # 時間設置成2022年7月10日0時0分

只修改時分秒:

date -s "hh:mm:ss"

全部都改:

date -s "YYYY-YY-DD HH:mm:ss"

說明:
使用date命令修改的時間是臨時生效的,重啟系統後失效,需要將當前時間和硬體時間同步後才可以持久生效。

2、hwclock工具

作用:實現時間的校對,將硬體時間和系時間進行校對。使用date手動修改了時間後,需要使用hwclock進行校對。

選項:

-s, --hctosys 	# 以硬體時鐘為準,校正系統時鐘

-w, --systohc 	# 以系統時鐘為準,校正硬體時鐘

說明:clock是hwclock的一個軟鏈接

# centos存在clock和hwclock
    [root@Centos8 ~]# ll `which hwclock`
    -rwxr-xr-x. 1 root root 66928 Jul 22  2020 /usr/sbin/hwclock
    [root@Centos8 ~]# ll `which clock`
    lrwxrwxrwx. 1 root root 7 Jul 22  2020 /usr/sbin/clock -> hwclock

# clock是hwclock的一個軟鏈接,ubuntu上面只有hwclock
    root@ubuntu1804:~# which clock
    root@ubuntu1804:~# which hwclock 
    /sbin/hwclock

例如:將系統時間同步到硬體時間

# 同步的時候沒有任何提示
root@ubuntu1804:~# hwclock -w  
root@ubuntu1804:~# 

例如:將硬體時間同步到系統時間

# # 同步的時候沒有任何提示
root@ubuntu1804:~# hwclock -s

3、timedatectl 工具

作用:timedatectl 工具可以用來更改時區也可以用來修改系統時間,一般是用來更改時區用的。

查看時區列表:

# 格式  timedatectl list-timezones 

# 例如:
    root@ubuntu1804:~# timedatectl list-timezones 
    Africa/Abidjan
    Africa/Accra
    .......

修改時區:

#   格式
	timedatectl set-timezone 時區
	
# 例如:修改時區      修改時區無任何提示
	root@ubuntu1804:~# timedatectl set-timezone Asia/Shanghai

修改日期時間:

timedatectl set-time "2017-01-23 10:30:00" # YYYY-mm-dd HH-MM-SS

開啟NTP:

timedatectl set-ntp true/false

通過軟鏈接的方式修改時區:

# 存放時區信息       /etc/timezone
	root@ubuntu1804:~# cat /etc/timezone
	Asia/Shanghai

# 修改時區影響的文件  /etc/localtime

# 例如
	root@ubuntu2004:~# rm -f /etc/localtime  #更改時區最終收到影響的文件:/etc/localtime
    root@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

root@ubuntu1804:~# ll  /etc/localtime
lrwxrwxrwx 1 root root 35 Mar 28 11:20 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

三:使用NTP自動同步時間

NTP(Network Time Protocol)協議,網路時間協議。利用ntp協議可以實現網路中的電腦時間同步。

1、ntpdate工具

作用:利用時間同步伺服器的時間來校準本機的時間,使用互聯網上的時間同步伺服器需要連接互聯網

格式:

ntpdate server_host 

例如: 使用ntpdate同步時間

root@ubuntu1804:~# apt install ntpdate

root@ubuntu1804:~# date 
Tue Dec 13 15:12:07 CST 2022

root@ubuntu1804:~# date -d '-1 day'
Mon Dec 12 15:12:22 CST 2022

root@ubuntu1804:~# ntpdate ntp.aliyun.com
13 Dec 15:12:36 ntpdate[15040]: adjust time server 203.107.6.88 offset 0.002588 sec

root@ubuntu1804:~# date 
Tue Dec 13 15:12:40 CST 2022  #同步後的時間

2、ntp工具

作用:利用時間同步伺服器的時間來校準本機的時間,能持久同步時間而不是一次同步。
說明:ntp工具是客戶端和伺服器都是一個工具,預設作為客戶端使用。

ntp作為客戶端:可以用來校準本地時間為其它ntp伺服器的時間

ntp作為服務端:用來搭建ntp時間伺服器,其它主機同步本機時間

ntp的客戶端工具:

  • ntpq工具:是ntp的命令行工具,用於查詢和控制 NTP 伺服器,並獲取與伺服器時間同步的信息。
# 查看 NTP 伺服器狀態:顯示當前電腦與所有已配置 NTP 伺服器之間的時間同步狀態
ntpq -p

# 查看 NTP 伺服器系統狀態:顯示每個 NTP 伺服器的系統狀態信息
ntpq -c sysstat

# 查看電腦與 NTP 伺服器之間的同步狀態:示電腦與 NTP 伺服器之間的同步狀態,包括時間差和延遲等信息
ntpq -c loopstats

3、chrony工具

作用:利用時間同步伺服器的時間來校準本機的時間,能持久同步時間而不是一次同步。同步的精度和速度比ntp更快。

埠:

  • 服務端udp的123埠,如果chrony開啟了客戶端功能的話,會對123\udp埠進行監聽。
  • 客戶端監聽udp的323埠,作用同上。

chrony作為客戶端:可以用來校準本地時間為其它ntp伺服器的時間

chrony作為服務端:用來搭建ntp時間伺服器,其它主機同步本機時間

chrony的客戶端工具:

  • chronyc工具:用於管理和監控 NTP(網路時間協議)客戶端的命令行工具
# 檢查 NTP 伺服器的狀態:顯示當前的時間誤差,NTP 伺服器的狀態,NTP 版本號等信息。
chronyc tracking

# 查看可用的 NTP 伺服器列表:查看本地電腦與 NTP 伺服器之間的連接狀態
chronyc sources

# 調整時鐘頻率:立即調整系統時鐘,使其與 NTP 伺服器同步
chronyc makestep

# 顯示當前的活動:顯示 NTP 守護進程的當前狀態,例如它是否正在向其他 NTP 伺服器發送請求或接收響應。
chronyc activity

四:NTP的配置

通過將一臺主機搭建為時間伺服器,其它區域網內的主機可以和本機的時間進行同步。

1、ntp工具

作為客戶端:

只需要在配置文件中指定ntp伺服器的地址就行

root@ubuntu1804:~# vim /etc/ntp.conf
pool ntp.aliyun.com iburst # iburst表示加速同步

作為服務端:
將本機時間作為標準,以此給其它主機同步時間。

# 以本機時間為準,允許所有用戶進行同步
root@ubuntu1804:~# vim /etc/ntp.conf
server  127.127.1.0
fudge   127.127.1.0 stratum 10
restrict default

restrict:

  • restrict:用於限制哪些主機或網路可以與時間伺服器進行通信。預設是restrict default允許所有主機同步
  • 配置restrict參數可以幫助保護時間伺服器免受不必要的流量和安全攻擊。
# 格式  restrict [IP] [mask] [netmask_IP] [patameter]
# 參數 
	default  # 預設參數,表示沒有限制。這意味著任何客戶端都可以訪問該伺服器併進行時間同步
	ignore   # 表示忽略所有的 NTP 請求,這意味著客戶端無法與伺服器進行時間同步。
    nomodify # 表示客戶端無法修改伺服器的時間設置
    noquery  # 表示客戶端無法查詢伺服器的狀態信息,例如版本號、偏差等。
    limited  # 表示限制客戶端的訪問速率,防止客戶端過於頻繁地請求時間同步。
	ntpport  #  指定允許訪問伺服器的 NTP 埠範圍

# 例如:
#  允許所有客戶端訪問伺服器 (預設)
	restrict default 

# 限制只有同一個區域網內的主機可以同步時間
	restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

# 限制來自192.168.1.0/24子網範圍內的主機只能通過1234埠訪問NTP伺服器,而不允許使用其他埠訪問。
restrict 192.168.1.0 mask 255.255.255.0 ntpport 1234”

# 限制來自 192.168.1.0/24 網段的所有主機,禁止其查詢伺服器,並且不信任該網段的主機。
restrict 192.168.1.0 mask 255.255.255.0 noquery notrust


# 區域網裡面搭建ntp就使用這個進行限制。
    # 允許192.168.0.0網段訪問時間伺服器,但是不能修改時間伺服器的一些配置。
        # 	modify 表示禁止客戶端修改伺服器的時間設置,notrap 表示禁止客戶端使用 trap 操作。
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

2、chrony工具

作為客戶端:
只需要使用server或pool指定ntp伺服器的地址就行了。

root@ubuntu1804:~# vim /etc/chrony/chrony.conf
server ntp.aliyun.com

作為服務端:
將本機時間作為標準,其它主機的時間同步本機時間。

因為chrony預設是作為客戶端使用的,即服務端的123埠預設沒開,需要在配置文件中使用allow指定才會切換為服務端模式。

# 修改改配置文件
root@ubuntu1804:~# vim /etc/chrony/chrony.conf
	server 127.127.1.0             
	fudge 127.127.1.0 stratum 10   
    local stratum 10  # 使用本地硬體時鐘作為時間源,並將同步級別設置為 10,表示該伺服器的時間較準確
    allow 0.0.0.0/0   # 指定允許同步的網段  表示的是任何主機都可以和本機進行時間的同步
 
# fudge這行是時間伺服器的層次。設為0則為頂級,如果要向別的NTP伺服器更新時間,請不要把它設為0

說明:

  • server:用於指定單個NTP伺服器
  • pool:用於指定NTP伺服器池而不是單個NTP伺服器
  • iburst:讓同步時間的時候更快,開啟多個並行任務來進行同步
  • prefer:表示如果指定了多個時間伺服器的情況下優先用這個
server 192.168.7.49 prefer iburst   # prefer表示如果指定了多個時間伺服器的情況下優先用這個 iburst:表示加速時間同步

五:具體實現

1、 ntp

使用ntp同步ntp伺服器上的時間

# 安裝ntp服務
root@ubuntu1804:~# apt install ntp

# 只需要在配置文件中加入這個就行
root@ubuntu1804:~# vim /etc/ntp.conf 
	pool ntp.aliyun.com

# 查看 NTP 伺服器狀態
root@ubuntu1804:~# ntpq  -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp.aliyun.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000

# 查看同步後的時間
root@ubuntu1804:~# date 
Wed Mar 29 14:08:54 CST 2023

使用ntp搭建本地時間伺服器

搭建好後需要等待5-10分鐘才行

# 修改客戶端時間用於測試
root@ubuntu1804:~# date -s "20220329"
Tue Mar 29 00:00:00 CST 2022

# 1. 修改服務端配置文件
root@ubuntu1804:~# vim /etc/ntp.conf
pool ntp.aliyun.com iburst
server 127.0.0.1 iburst
fudge  127.127.1.0 stratum 10
restrict source 10.0.0.0 mask 255.255.255.0  nomodify

# 2. 查詢和顯示NTP伺服器的狀態
root@ubuntu1804:/var/log/ntpstats# ntpstat
synchronised to local net at stratum 11 
   time correct to within 199 ms
   polling server every 64 s
   
# 查看同步信息 沒帶星號說明還沒開始同步
root@ubuntu1804:/var/log/ntpstats# ntpq  -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 LOCAL(0)        .LOCL.          10 l   11   64   37    0.000    0.000   0.000

# 帶星號說明已經開始同步
root@ubuntu1804:/var/log/ntpstats# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.          10 l   54   64  377    0.000    0.000   0.000


# 3. 客戶端時間同步
root@ubuntu1804:~# ntpdate  10.0.0.22
15 Oct 00:19:27 ntpdate[3631]: no server suitable for synchronization found

# 服務端配置好後,需要等5-10分鐘左右才能同步成功,否則就會出現上面的提示
root@ubuntu1804:~# ntpdate  10.0.0.22
29 Mar 17:42:59 ntpdate[3632]: step time server 10.0.0.22 offset 14318478.924123 sec

# 查看更新後的時間
root@ubuntu1804:~# date 
Wed Mar 29 16:15:44 CST 2023

image

2、chrony工具

使用chrony同步ntp伺服器上的時間

# 將本機時間修改為一個錯誤時間測試
root@ubuntu1804:~# date 
Tue Mar 29 00:00:55 CST 2022

# 安裝服務
root@ubuntu1804:~# apt install chrony

# 修改配置文件
root@ubuntu1804:~# vim /etc/chrony/chrony.conf 
pool ntp.aliyun.com iburst

# 重啟服務
root@ubuntu1804:~# systemctl restart chronyd.service 

# 查看本地電腦與NTP伺服器之間的連接狀態
root@ubuntu1804:~# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 203.107.6.88                  2   6     1    31   -8775h[ -8775h] +/-   31ms

# 查看有多少個ntp源線上
root@ubuntu1804:~# chronyc activity 
200 OK
1 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

root@ubuntu1804:~# date 
Wed Mar 29 14:38:41 CST 2023

image

使用chrony搭建本地時間伺服器

# 客戶端時間設置
root@ubuntu1804:~# date  -s "20220228"
Mon Feb 28 00:00:00 CST 2022

# 伺服器配置
root@ubuntu1804:~# vim /etc/chrony/chrony.conf 
server 127.0.0.1 iburst
# fudge 127.127.1.0 stratum 10
local stratum 10
allow 0.0.0.0/0

# 重啟服務
root@ubuntu1804:~# systemctl restart chronyd.service 

# 查看有多少個ntp源線上
root@ubuntu1804:~# chronyc activity 
200 OK
0 sources online
0 sources offline
1 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

# 顯示本機時間和遠程伺服器同步的情況
root@ubuntu1804:~# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* localhost                    10   6   177     9    -38ns[ +535ns] +/- 1362ns

# 客戶端同步時間
root@ubuntu1804:~# ntpdate 10.0.0.22
29 Mar 14:58:27 ntpdate[3607]: adjust time server 10.0.0.22 offset -0.020780 sec
root@ubuntu1804:~# date 
Wed Mar 29 14:58:29 CST 2023

image

(51條消息) NTP伺服器配置_ntp配置_Resines的博客-CSDN博客

六:Windows搭建和使用NTP伺服器

1、windows搭建NTP伺服器

(1)修改註冊表啟動NTP server

快捷鍵win + R 打開“運⾏”菜單,輸⼊regedit打開Windows註冊表
修改註冊表配置,設定授權時間伺服器
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config”
[AnnounceFlags]修改設定值為5

image

修改註冊表配置啟動ntp伺服器:

“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer”
[Enabled]數值修改為1

image

(2)重啟WindowsTime服務

# 管理員模式下cmd終端執⾏以下命令:
net stop w32time
net start w32time

image

2、windows使用NTP伺服器

(1)將WindowsTime服務設置自動啟動

打開Windows系統服務(Win + R然後輸⼊services.msc再回⻋),
找到Windows Time系統服務,右擊更改屬性,將其 "啟動類型" 改為 "⾃動"。

image

(2)指定ntp伺服器的地址

⿏標右擊電腦左下⻆的時間,打開:調整⽇期/時間(A)
選擇添加不同時區的時鐘

image

再選擇Internet時間,點擊:更改設置,勾選上⼩⽅塊,伺服器選擇上⼀步配置的IP地址,點擊⽴即更新.
image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 面向對象1 面向對象,更在乎的結果,而過程的實現並不重要 IDea快捷鍵(基礎版) | 快捷鍵 | 作用 | | | | | ctrl + / | 快捷註釋 | | ctrl + shift + / | 多行註釋 | | ctrl + d | 快速複製 | | ctrl + shift + up/d ...
  • 在前一篇文章,我們瞭解瞭如何通過.NET6+Quartz開發基於控制台應用程式的定時任務,今天繼續在之前的基礎上,進一步講解基於ASP.NET Core MVC+Quartz實現定時任務的可視化管理頁面,僅供學習分享使用,如有不足之處,還請指正。 涉及知識點 Quartz組件,關於Quartz組件的 ...
  • 原文作者:aircraft 原文鏈接:https://www.cnblogs.com/DOMLX/p/17270107.html 加工的泛型類如下: using System; using System.Collections.Generic; using System.IO; using Syst ...
  • 就像 Web Api 介面可以對入參進行驗證,避免用戶傳入非法的或者不符合我們預期的參數一樣,選項也可以對配置源的內容進行驗證,避免配置中的值與選項類中的屬性不對應或者不滿足預期,畢竟大部分配置都是通過字元串的方式,驗證是很有必要的。 1. 註解驗證 像入參驗證一樣,選項驗證也可以通過特性註解方便地 ...
  • 合宙說要出Bluepill已經很久了, 之前的黑色板子雖然也不錯但是對於習慣STM32的同學總是有些彆扭, 有幾個PIN沒引出而且PB12和PB14之間有電阻, 會對SPI造成干擾. 換成喜聞樂見的 Bluepill 板型後就友好多了, 一些STM32的場景也能無縫替換. ...
  • 操作系統 :Windows10_x64 pcm格式為原始音頻數據,有時候會遇到需要錄製、播放及轉換的情況,這裡記錄下。 一、錄製pcm音頻 這裡演示下使用Audacity進行pcm音頻錄音的過程。 Audacity的使用可參考這篇文章:Audacity開源音頻處理軟體使用入門 1)打開Audacit ...
  • 基本命令操作 cd 命令 幾個特殊的目錄 . 當前的工作目錄 .. 上一級的工作目錄 - 上一次的工作目錄 ~ 當前系統登錄的用戶家目錄 ls 命令 list 列出文件夾中的內容 ls 可選參數 可選的文件夾對象 -a # all顯示出所有的文件 -l # 列出詳細的文件內容 -h # 以人類可閱讀 ...
  • 最近微軟總是各種掉鏈子,不是outlook有問題就是Teams出問題,辦公一點都不安生,Indians還真有些不靠譜。後來微軟正常後同事電腦的Teams卻出現問題,費了九牛二虎之力終於問題得到解決,特記錄步驟如下: teams登錄故障處理: 1.徹底清除卸載teams,刪除%appdat%\micr ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...