聊聊服务器时间

小助手读文章 00:00 / 00:00

时间,是生活中最重要的一个计量单位。我们经常听到的是,某某时间开会、某某时间考试、某某时间放假......很难想象,如果没有时间,生活将要如何顺利地继续。

在运维当中,服务器时间设置相对来说也是相当重要的一部分,对于一定规模的业务,如果没有准确的时间,业务也将变得一团糟。比如某商城上线了 08:00:00-08:00:05 限时秒杀活动,结果服务器时间比标准时间早了那么几分钟,想要参加活动的客户在 07:59:00 登录时发现,秒杀已结束,明明时间还没到就结束,对于客户来说此时第一反应肯定是商城做虚假活动,但实际上商城确实开启了活动,虽如此,但久而久之商城的信誉估计还是会变得岌岌可危。

以上只是一个例子,说明准确时间的重要性。服务器系统时间大多默认为,在服务器物理时钟上根据语言区域的时区进行调整展示,由于很多时候物理时钟或语言区域并不准确,因此我们需要进行手动调整。

举个例子,在 Linux 下,可以先通过 tzselect 命令来手动调整时区:

[[email protected] ~]# date -R    //查看当前时间、时区信息,默认的应当是协调世界时(UTC +0000)
Tue, 19 Mar 2019 01:08:06 +0000
[[email protected] ~]# tzselect    //通过 tzselect 命令用选择的方式设置时区
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan          18) Israel            35) Palestine
 2) Armenia          19) Japan            36) Philippines
 3) Azerbaijan          20) Jordan            37) Qatar
 4) Bahrain          21) Kazakhstan        38) Russia
 5) Bangladesh          22) Korea (North)        39) Saudi Arabia
 6) Bhutan          23) Korea (South)        40) Singapore
 7) Brunei          24) Kuwait            41) Sri Lanka
 8) Cambodia          25) Kyrgyzstan        42) Syria
 9) China          26) Laos            43) Taiwan
10) Cyprus          27) Lebanon            44) Tajikistan
11) East Timor          28) Macau            45) Thailand
12) Georgia          29) Malaysia            46) Turkmenistan
13) Hong Kong          30) Mongolia            47) United Arab Emirates
14) India          31) Myanmar (Burma)        48) Uzbekistan
15) Indonesia          32) Nepal            49) Vietnam
16) Iran          33) Oman            50) Yemen
17) Iraq          34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

    China
    Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:    Tue Mar 19 09:04:57 CST 2019.
Universal Time is now:    Tue Mar 19 01:04:57 UTC 2019.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
    TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
[[email protected] ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  //复制相应的时区文件,替换系统时区文件
cp: overwrite ‘/etc/localtime’? y
[[email protected] ~]# date -R  //可以看到时区已更改为 CST(+0800)
Tue, 19 Mar 2019 09:09:27 +0800
[[email protected] ~]# hwclock -w  //由于一些系统启动时会自动同步物理时钟,所以我们可以将正确时间写入 BIOS,hwclock --show 可以显示物理时钟

然后通过 date -s 手动调整日期、时间 :

[[email protected] ~]# date -s 03/19/2019   //将系统日期设定成 2019 年 3 月 19 日
[[email protected] ~]# date -s 17:55:55    //将系统时间设定成下午 5 点 55 分 55 秒的命令
[[email protected] ~]# date -s "03/19/2019 17:55:55"   //date 命令支持多种时间格式

由于很多服务器其实只为企业内部服务,并不连接外网,单纯的 date 并不能保证时间长久的准确性,特别是使用时间久了,可以明显看到时间延后了很多,像我这里一台 4 年的服务器,物理时钟就慢了达 3 小时之久。

如果服务器有外网连接,我们还可以通过 ntpdatecron 命令自动同步网络时间:

[[email protected] ~]# yum install ntpdate  //安装 ntpdate 命令
......
[[email protected] ~]# ntpdate time.nist.gov  //与美国国家标准研究所同步时间
19 Mar 09:27:08 ntpdate[6634]: adjust time server 129.6.15.29 offset 0.007998 sec
[[email protected] ~]# crontab -e

0 */2 * * * ntpdate time.nist.gov   //每两小时同步一次

以上是服务器的时间,下面聊聊客户端的时间。现在台式机或笔记本电脑出厂大多是预装 Windows10 系统,在时间方面, Windows10 与早期版本(如 Windows7 等)最大的改进就是支持显示秒数,但默认并不显示,需要我们通过简单修改注册表来实现显示。

键盘按住 Windows + R (或桌面左下角 Windows 图标点鼠标右键 - 运行)调出运行框,输入 regedit 进入注册表编辑,然后定位到 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced(可以直接复制粘贴到注册表导航栏),右键新建 DWORD(32位)值,命名为ShowSecondsInSystemClock,修改数值数据为1,再接着通过 Ctrl+Alt+Del 调出任务管理器重启 explorer.exe 进程即可。


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 linuxVPSwindows服务器时间 的文章

 本文最后更新于 2019/03/19 12:30:00,可能因经年累月而与现状有所差异

 引用转载请注明:VirCloud's Blog > 经验 > 聊聊服务器时间

精选评论

  1. P8C

    还有很多对服务器和客户端时间有严格时间要求的,像谷歌的二次验证,客户端跟服务器时间差太多就没办法过验证。