天天看點

Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間

問題: 在 linux 上, 我怎樣通過指令行來改變日期和時間?

在 linux 系統中保持日期和時間的同步是每一個 linux 使用者和系統管理者的重要責任. 很多程式都依靠精确的時間資訊得以正常工作. 另外, 不精确的日期和時間會使得日志檔案中的時間戳變得毫無意義, 減弱了它們在系統檢查和檢修中的作用. 對于生産系統來說, 精确的日期和時間甚至更為重要. 例如, 在零售公司中, 所有産品必須時刻準确地計數(并儲存在資料庫伺服器中)以便于财政部門計算每天及每周,每月,每年的支出和收入.

我們必須注意, 在 linux 機器上有兩種時鐘: 由核心維持的軟體時鐘(又稱系統時鐘)和在機器關機後記錄時間的(電池供電的)硬體時鐘. 啟動的時候, 核心會把系統時鐘與硬體時鐘同步. 之後, 兩個時鐘各自獨立運作.

Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間

<a target="_blank"></a>

在 linux 中, 你可以通過 date 指令來更改系統的日期和時間:

# date --set='new_date'

其中 new_date 是諸如 "sun, 28 sep 2014 16:21:42" 或者 "2014-09-29 16:21:42" 的可讀格式的日期字元串.

日期格式也可以手動指定以獲得更精确的結果:

# date +format --set='new_date'

例如:

# date +’%y%m%d %h%m’ --set='20140928 1518'

Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間

你也可以用相對的方式地增加或減少一定的天數,周數,月數和秒數,分鐘數,小時數。 你也可以把日期和時間的參數放到一個指令中。

# date --set='+5 minutes'

# date --set='-2 weeks'

# date --set='+3 months'

# date --set='-3 months +2 weeks -5 minutes'

Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間

最後, 把硬體時鐘設定為目前系統時鐘:

# hwclock --systohc

運作 hwclock --systohc 的目的是将硬體時鐘同軟體時鐘同步, 這可以更正硬體時鐘的系統漂移(即時鐘按照一定的速度走快或走慢).

另一方面, 如果硬體時鐘是正确的, 但系統時鐘有誤, 可以用下面的指令更正:

# hwclock --hctosys

在兩種情況下, hwclock 指令都是将兩個時鐘同步. 否則, 重新開機後時間會是錯誤的, 因為當電源關閉時硬體時鐘會記憶時間. 然而, 這對于虛拟機器并不适用, 因為虛拟機器并不能通路硬體時鐘.

你可以使用如下指令來安裝 ntpdate:

在 debian 及基于 debian 的發行版上:

# aptitude install ntpdate

在基于 ret hat 的發行版上:

# yum install ntpdate

使用 ntp 同步系統時鐘:

# ntpdate -u &lt;ntp 伺服器名或ip&gt;

Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間Linux 有問必答:在 Linux 上如何通過指令行來更改日期和時間

除了一次性使用 ntpdate 來同步時鐘, 你也可以使用 ntp 守護程序(ntpd), 它會始終在背景運作, 不斷地通過 ntp 來調整系統時鐘.

原文釋出時間:2014-11-08

本文來自雲栖合作夥伴“linux中國”

繼續閱讀