现在的位置: 首页 > 综合 > 正文

Linux:时间问题?

2012年07月15日 ⁄ 综合 ⁄ 共 1644字 ⁄ 字号 评论关闭

概论:

linux的时间分为:UTC时间、本地时间,一般安装时会提示你选择一种时间表示,通常默认都是UTC时间。windows在安装时一般就指定了区域,所以时间指的是本地时间!

通常的和时间有关的命令都支持这两种时间的显示和设置,默认显示的都是本地时间!

 

原理:

通常,在用linux时,经常发现时间不正确:不是bios的时间和linux系统的时间不一致,就是liunx下的时间和windows下的时间不对,why????

 

对于windows:bios <----->wndows

os启动时,读取bios的时间作为系统的时间,区域设置不影响时间的值,windows时间总是本地的!

修改时间的命令 同时修改windows系统时间 和 bios的时间

区域设置仅仅影响不同时区的信息交换!

 

对于linux:bios <--------[tz]-------->liunx

os启动时,读取bios的时间作为系统的本地时间值,根据区域设置获取系统的utc时间值,linux时间具有两套标准的时间值。

date命令显示、修改 linux的本地时间、utc时间;但不修改bios的本地时间!

hwclock显示、修改bios时间,但不会影响os的时间!

 

常见问题及解决:

如何查看bios的(本地)时间?

hwclock --show | hwclock -r 

 

如何以utc时间显示bios的时间?

hwclock --utc |hwclock -u:千万注意,正utc时间和本地时间的时间差值可不一定和你os的时区差值相同——因为二者没有关系;它是指你自上次调整bios时间时(--set |--systohc|--adjust),记录在相关硬件时间信息调整文件/etc/adjtime中的差值!

 

bios时间和真实的本地时间不一致,如何设置正确的bios本地时间?

hwclock --set --date=总是本地时间字符串 # --set 和 --date选项永远是在一起使用的!”总是本地时间字符串“意思是,该时间字符串不受--utc选项影响;其格式也非常灵活!

 

bios时间是正确的本地时间,如何根据当前的os时区设置,获取正确的本地时间?

hwclock --hctosys

 

bios时间是正确的本地时间,如何根据当前的os时区设置,获取正确的本地utc时间?

hwclock --systz

 

如何查看当前os的本地时间?

date

 

如何查看当前os的utc时间?

date -u |date --utc |date --universal

 

不考虑bios的本地时间,如何直接设置正确的本地时间?

date -s {时间字符串| --set=时间字符串 }

 

不考虑bios的本地时间,如何直接设置正确的utc时间?

date -u {-s 时间字符串| --set=时间字符串}

 

如何以指定的格式显示时间(本地、utc、指定文件的修改时间、文件的时间列表)?

-d|--date

-f|--file

-r|--reference

date 选项 +时间格式规范字符串

 

如何以RFC格式显示时间?

RFC 2822格式:utc时间+时间差的标识格式

date -R|date --rfc-2822

date --rfc-3339=‘timespec’

 

 

如何获取最准确的时间?

ntp协议;ntp服务器(Internet时间服务器);ntp客户端;同步时间

ntpdate

最广泛、古老、知名的ntp服务器:

Area: HostName:
Worldwide pool.ntp.org
Asia asia.pool.ntp.org
Europe europe.pool.ntp.org
North America north-america.pool.ntp.org
Oceania oceania.pool.ntp.org
South America south-america.pool.ntp.org

 

搭建自己的时间服务器?

必须的包:openntpd

守护进程(服务器进程)ntpd

守护进程配置文件:/etc/openntpd/ntpd.conf

抱歉!评论已关闭.