linux系统下的时间配置综述

lsgsunny 2019-01-07

一.时间类型分为:

1.网络时间(设置时区,ntp服务器同步的时间)

2.系统时间,当前系统所显示的时间

3.硬件(RTC)时间,主板上面Bios的时间

一般设置为:系统时间与网络时间同步,系统时间写入硬件时间。

二.时间的查看方式:

1.查看硬件时间

#hwclock

2.查看系统时间

date

3.网络时间的更新及查看

#ntpdate xxxxxx
xxxxxx为在/etc/ntp.conf文件中设置的时间服务器

四.时间的修改方式

1.系统时间的修改

将时间设置为13点11分03秒
#date -s 13:11:03

2.硬件时间的修改

#hwclock --set --date='03/21/2019 15:20';

设置硬件时间为2019年3月21日15:20

3.网络时间的修改

1.网络时间要通过修改时区来进行修改
tzselect 不确定时区的需要使用这个命令找到自己所在的时区
2.大部分中国用户都是使用亚洲/上海,所以用下面这条命令更新为上海时区 
#cp -v /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.与网络服务器同步时间
#ntpdate xxxxxx
xxxxxx为在/etc/ntp.conf文件中设置的时间服务器

五.时间互相写入

1.硬件时间写入系统时间

#hwclock -s

2.系统时间同步网络时间

#ntpdate xxxxxx
xxxxxx为在/etc/ntp.conf文件中设置的时间服务器

3.系统时间写入硬件时间

#hwclock -w

六.双系统时间误差问题的原因及解决方案

1.硬件时间的格式

1.本地时间:localtime(windows所使用的时间)

2.世界标准时间:UTC(linux/unix所使用的时间)

2.windows与linux/unix对硬件时间解读的区别

windows使用localtime(本地时间)作为系统时间

linux/unix使用UTC(世界标准时间)与时区进行换算的出的时间作为系统时间,因为北京时间使用东八区时间,所以是UTC+8换算后为系统时间

3.windows与linux/unix时间误差的原因

使用windows系统时与网络同步时间的同时将localtime时间写入硬件时间(注意这时候windows系统时间和硬件时间已经同步相同的时间),使用linux/unix的设置中硬件时间是UTC时间所以它在已经同步的正确的时间基础上面加了8小时,反之同理,导致时间误差。

4.windows与linux/unix时间误差的解决方案

方法1.windows:

1.使用UTC时间作为本地时间

方法2.linux:

1.使用localtime时间作为硬件时间 (适合于使用systemd管理服务的linux发行版)

2.使用网络时间作为本地时间,并且不与硬件时间互相同步(适用于使用init管理服务的linux发行版)

目前大多数发行版本都使用systemd为服务管理器

5.windows与linux/unix时间误差的具体操作

方法一:windows

1.以管理员身份打开cmd

执行:

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

方法二:linux

1.使用localtime作为硬件时间(适合于使用systemd管理服务的linux发行版)

#hwclock --localtime

或者

root用户修改文件/etc/adjtime文件内容的UTC为LOCAL

2.设置linux不使用硬件时间同步(适用于使用init管理服务的linux发行版)

root用户修改文件/etc/sysconfig/clock文件内容的UTC=1为UTC=0

如有不足麻烦各位前辈评论补充!

总结

相关推荐