一.时间类型分为:
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
如有不足麻烦各位前辈评论补充!