树莓派使用ntpdate校准时间无效的一种情况和解决办法

树莓派不像PC的主板那样还带个电池用于关机之后的计时,每次都是板子开机之后重新计时,网友一般提供的方法就是用 ntpdate 联网校准时间,不过要求板子不是连移动的网,因为移动的防火墙会拦截相关的访问。
关于这个校准服务程序的详细安装和配置方法,相关的文章链接有一大堆,这里不再赘述。简单说一下我在树莓派2上安装这个服务后,时间没有校准的一个情况,以及解决的办法,准确来说,这只是在其他人的安装教程上进行了一个补充说明。
先来看看主流的配置ntpdate服务的流程:

$ sudo apt-get install ntpdate # 安装服务程序
$ tzselect                     # 选择要匹配的时区
$ sudo ntpdate cn.pool.ntp.org # 更新时间
$ date                         # 检验时间是否正确

至于开机自启什么的,貌似我的树莓派2在安装这个服务之后就是开机自启的了,不需要手动去启动。
通常按照上面的那个操作步骤,就能配置好服务并校准树莓派的时间了。但是,我现在安装配置这个软件后,时间依然没有变化。另外,执行那个 ntpdate cn.pool.ntp.org 命令后,提示 NTP socket 在使用中,原因大概是现在的 ntpdate 程序在你 tzselect 选定时区之后会对应地帮你选好服务器地址,不必再手动指定用哪个服务器。当然,也可以用命令

$ sudo service ntp stop

来停止NTP的相关服务,执行完这个命令后,就可以再用 ntpdate 手动指定服务器地址了。
但是,执行了上面这些操作后,树莓派的时间依然没有变,只不过它显示的时间一直是 ntpdate 提供的一个通用时间(Universal Time),这不是我们想要看到的,在用 tzselect 命令配置好时区后,这个命令中显示出了一个正确的当地时间(Local Time)如下
树莓派使用ntpdate校准时间无效的一种情况和解决办法_第1张图片

进行到图中的选项步骤选择了”Yes”那一项之后,还会有一个很重要的提示信息打印出来,如下
树莓派使用ntpdate校准时间无效的一种情况和解决办法_第2张图片

一开始看其他人的教程时,并没有这一个提示信息的截图,所以我也就没有仔细看,回过头来才发现是这么有用。这个提示告诉我们,如果要让这个更改对你自己是永久有效的话,那么将

TZ='Asia/Shanghai'; export TZ

添加到你 home 目录下的 .profile 文件中。当然了,如果我们要让所有用户的时间都按照如此设置的话,应该将这段话添加到 /etc 目录下的 profile 文件中。
按照那个提示信息,我修改了自己用户的配置文件如下

$ cat << EOF >> .profile
> TZ='Asia/Shanghai'; export TZ
> EOF

然后重启系统

$ sudo reboot

等板子重启之后,重新登陆我的用户账户,在VNC图形界面下就可以看到我的时间同步成了那个本地时间。

你可能感兴趣的:(树莓派)