Linux 手动修改系统时间

Linux 系統時間

Linux 的 date 指令可以查詢目前系統上的日期與時間:

[root@localhost ~]# date
四 11月 17 08:49:21 CST 2016

使用者可以自訂 date 的輸出格式,例如輸出年/月/日這樣的格式:

[root@localhost ~]# date +%Y/%m/%d
2016/11/17

只輸出時間:

[root@localhost ~]# date +%T
09:12:46

date 的 -s 參數可以接受非常彈性的日期字串,我們也可以用以下幾種比較簡單的格式來設定日期與時間:

sudo date -s "2016/11/11 10:21:32"
sudo date -s "2016-11-11 10:21:32"
sudo date -s "20161111 10:21:32"

另外也可以使用 next 或 last 的方式來設定:

sudo date -s "next Mon" # 下週一
sudo date -s "last Mon 17:30:21" # 上週一 17:30:21

硬體時鐘(RTC)

若要查詢硬體時鐘(RTC)的時間,可以使用 hwclock:

sudo hwclock
2016年11月17日 (週四) 09時00分46秒 .829232 seconds

若要將系統時間寫入硬體時鐘,可以使用 -w 參數:

sudo hwclock -w

systemd 系統的時間管理

是 Linux 作業系統之下的一套中央化系統及設定管理程式(init 軟體),目前絕大多數的 Linux 發行版都已採用 systemd 來代替原來的 System V。

在 systemd 系統下可以使用timedatectl來檢視系統時間資訊:

[root@localhost ~]# timedatectl
Local time: 四 2016-11-17 10:12:14 CST
Universal time: 四 2016-11-17 02:12:14 UTC
RTC time: 日 2016-11-13 16:02:20
Time zone: Asia/Taipei (CST, +0800)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no
root@ubuntu-pc:/etc# hwclock -w
root@ubuntu-pc:/etc# timedatectl
Local time: 四 2016-11-17 10:12:27 CST
Universal time: 四 2016-11-17 02:12:27 UTC
RTC time: 四 2016-11-17 02:12:26
Time zone: Asia/Taipei (CST, +0800)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no

也可以用來設定系統時間,設定方式為:

sudo timedatectl set-time "2016-11-12"

設定日期與時間的方式:

sudo timedatectl set-time "2016-11-12 18:10:40"

也可以只更改時間:

sudo timedatectl set-time "18:10:40"

關閉 ntp 自動校時

如果系統有設定以 ntp 自動校時,在手動更改日期與時間時,就出現這樣的錯誤訊息:

Failed to set time: Automatic time synchronization is enabled

此時若要手動校時就要先將 ntp 關閉:

sudo timedatectl set-ntp no

若要恢復 ntp 自動校時,則執行:

sudo timedatectl set-ntp yes

設定時區

timedatectl 亦可用來設定時區(time zone):

timedatectl set-timezone "Asia/Taipei"

不過通常一般若要設定時區,使用這種選單選取的方式會比較方便:

sudo dpkg-reconfigure tzdata

linux-dpkg-reconfigure-tzdata-20161117-1

參考資料:nixCraft
摘自:https://blog.gtwang.org/linux/howto-set-date-time-from-linux-command-prompt/

你可能感兴趣的:(Linux 手动修改系统时间)