如何設定Linux時間

2021-08-13 02:00:57 字數 2302 閱讀 4217

by toradex 胡珊逢

1). 簡介

在 linux 系統中有兩個很重要的時鐘:硬體時鐘 hardware clock,又稱為 rtc、cmos 或者 bios 時鐘。這類時鐘需要使用外部電池供電,即使在系統關機其仍舊可以保持計時。第二種時鐘稱為系統時鐘 system clock,其由作業系統維護。當系統啟動時,從硬體時鐘讀取時間資訊,並將其應用於系統時鐘。

本文以toradex arm平台為例演示如何設定linux時間,toradex評估板都有乙個硬體 rtc st m41t0 通過 i2c 匯流排與計算機模組相連線。

2). 具體操作

toradex linux bsp 自 v2.1 版本開始使用systemd-timedated和timedatectl 命令,自 v2.4 使用sytemd-timesyncd 通過 ntp 網路同步時鐘。使用timedatectl 命令設定後會立即同步到硬體時鐘。也可以使用hwclock 命令來操作硬體時鐘。下面將介紹如何設定時間和時區。

使用timedatectl 命令獲取當前時間

# timedatectl

local time: mon 2014-05-26 11:29:40 utc

universal time: mon 2014-05-26 11:29:40 utc

rtc time: mon 2014-05-26 11:29:39

timezone: universal (utc, +0000)

ntp enabled: n/a

ntp synchronized: yes

rtc in local tz: no

dst active: n/a

預設情況下系統被設定為 utc-0 時區,針對中國地區需要更改配置,在聯網情況下執行下面命令

root@colibri-vf:~# opkg update

root@colibri-vf:~# opkg install tzdata-asia

root@colibri-vf:~# timedatectl set-timezone asia/shanghai

root@colibri-vf:~# timedatectl 

local time: fri 2017-12-01 16:56:37 cst

universal time: fri 2017-12-01 08:56:37 utc

rtc time: fri 2017-12-01 08:56:37

time zone: asia/shanghai (cst, +0800)

network time on: yes

ntp synchronized: no

rtc in local tz: no

此時時區 time zone 以及被正確設定。

設定時間

root@colibri-vf:~# timedatectl set-time "2017-12-01 16:54:37"

root@colibri-vf:~# cat /etc/systemd/timesyncd.conf

[time]

ntp=0.cn.pool.ntp.org 1.cn.pool.ntp.org 2.cn.pool.ntp.org 3.cn.pool.ntp.org

配置完成會自動同步,ntp synchronized 顯示網路同步狀態

root@colibri-vf:~# timedatectl

local time: fri 2017-12-01 17:14:03 cst

universal time: fri 2017-12-01 09:14:03 utc

rtc time: fri 2017-12-01 09:14:04

time zone: asia/shanghai (cst, +0800)

network time on: yes

ntp synchronized: yes

rtc in local tz: no

對於不需要 ntp 同步,通過下面命令禁用

root@colibri-vf:~# timedatectl set-ntp false

使用 hwclock 也可以直接修改硬體時鐘

讀取當前硬體時鐘

root@colibri-vf:~#  hwclock –r

將系統時鐘寫入到硬體時鐘

root@colibri-vf:~#  hwclock –w

將硬體時鐘同步到系統時鐘

root@colibri-vf:~#  hwclock –s

參考

linux 時間設定

date 顯示當前日期 date s 設定當前時間,只有root許可權才能設定,其他只能檢視。date s 20061010 設定成20061010,這樣會把具體時間設定成空00 00 00 date s 12 23 23 設定具體時間,不會對日期做更改 date s 12 12 23 2006 1...

linux設定時間

1.1.1 設 置系統日期和 date 起源網bnxb.com mm 代 表月份 dd 代 表日期 hh 代 表 24 小時制的小時 mi 代 表分鐘 bnxb.yyyy 代 表年 ss 代 表秒 例如,將 系統日期為 2008 年 01 月 31 日,下午 10 19 53 date 013122...

Linux 時間設定

目前 linux 系統上面有兩個時間,乙個是 linux 系統,另乙個則是 bios 時間。我們可以使用 date 這個指令來手動修正目前主機的時間,不過,date 這個指令僅修正 linux 時間而已。date s 2013 08 03 date s 14 15 00 date s 2013 08...