测试东西的时候发现服务器上的时间快了几十秒,尝试用 ntp 直接更新一下,结果没有成功,所以还是从头来过,先弄一下简单的理理。 思路
Linux 中的时间date在树莓派中来运行,首先是当前时间 $ date Tue Mar 8 10:05:13 UTC 2016 此时的北京时间刚好是 18:05 ,毕竟我们是 +8 时区,上面显示的是 UTC 时间。 Mac 里面的如下,是 CST 时间 $ date Tue Mar 8 18:07:04 CST 2016 除了显示时间, date 还能够把字符串中的时间按照指定的格式显示,以及设置时间。 其他的有关时间的获取
时间戳$ date +%s 1457432423 时区$ date +%Z CST 原来 CST 是北京时间(China Standard Time)的意思,UTC 就是 协调世界时 。 设置时间设置时间很简单,只要 -s, --set=STRING ,当然是需要管理员权限的。 后面的 STRING 比较自由。有用下面的格式: $ sudo date -s '2016-03-08 11:58:04' Tue Mar 8 11:58:04 UTC 2016 $ sudo date -s 'Tue Mar 8 11:55:03 UTC 2016' Tue Mar 8 11:55:03 UTC 2016 $ sudo date -s '2016-03-08' Tue Mar 8 00:00:00 UTC 2016 似乎还有更灵活的设置方式,不过还是用那种最朴实的吧。 附上一个显示时间的: $ date +'%Y-%m-%d %H:%M:%S' 2016-03-08 12:01:41 NTP这块有点麻烦,主要看了鸟哥的 NTP 時間伺服器 之后又做了些实验大概知道怎么回事了。 简单的设置时间一般的给一个机器设置时间只要 ntpdate 命令就好了,另外的情况可能是需要自己搭 NTP 服务器来使一块机房的机器时间保持同步的时候才会使用吧,而且那个时间好像很慢的样子,现在先只简单的设置下时间就好,所以那些先不予考虑。 $ sudo ntpdate <server> 在这里找到了国内的 NTP Server: pool.ntp.org: NTP Servers in China, cn.pool.ntp.org 取一个拿来用 0.asia.pool.ntp.org ,这个域名对应的 IP 地址是不停变动的,为了实现更好的同步吧。 sudo ntpdate 0.asia.pool.ntp.org 这个命令执行完之后会直接把时间改掉。似乎那种 ntpd 的方式会渐进的调整时间,且会一直去同步时间,服务器上应该需要启动这个吧。 上面的命令在旁边的树莓派上是可用的,但是在远程的服务器上总是失败,错误如下: $ sudo ntpdate 202.118.1.46 8 Mar 20:49:47 ntpdate[10113]: no server suitable for synchronization found 感觉是端口被封了,NTP 使用的是 123 Port。 用 ntp 来同步时间在 $ sudo service ntp start 过后,就可以 ntpq -pn 来看状态,下面的结果说明端口被封了吧,reach 全都是 0。 $ ntpq -pn remote refid st t when poll reach delay offset jitter ============================================================================== 123.108.200.124 .INIT. 16 u - 64 0 0.000 0.000 0.000 129.250.35.250 .INIT. 16 u - 64 0 0.000 0.000 0.000 212.26.18.41 .INIT. 16 u - 64 0 0.000 0.000 0.000 202.71.140.36 .INIT. 16 u - 64 0 0.000 0.000 0.000 91.189.89.199 .INIT. 16 u - 64 0 0.000 0.000 0.000 TroubleshootingNTP < Support < NTP 用 Mac 来 debug好在 Mac 上也有 ntpd,参照: Setup an NTP Server in Mac OS X 10.8 – Philipp Klaus's Computing Blog 进行下面的:
可以看到这个 NTP 协议两端都是用 123 端口通信的,所以有防火墙的环境才比较容易失败吧。 暂且这样,之后再说。 参考
扩展
|