本帖最后由 manhuami2007 于 2023-12-18 08:24 编辑
设备刚启动的时候,设备的时间肯定是不对的,因此需要进行校时。校时的方式有两种:当设备能够联网之后就可以使用ntp自动校时了,如果没有联网的话,也可以使用手动校时。
NTP自动校时
自动校时要用到ntp服务,系统默认安装了ntpd服务,其它的都没有自动安装,比如ntpq和ntpdate这两个是没有的。
1. 修改ntp.conf文件,增加ntp服务器地址
使用命令timedatectl 可以看出ntp服务已经启动了,而且也联网了,但是系统并没有自动校时。这是因为 /etc/ntp.conf 中还没有设置,如下图所示:
可以看出ntp的server 是127.127.1.0,并不是ntp服务器的地址,因此需要修改这个文件,使用vi命令修改这个文件
vi /etc/ntp.conf
增加 server cn.pool.ntp.org prefer,修改后如下图所示。后面的prefer是在有多个server时,选择一个作为优先选项的作用。
2.重启ntpd服务
因为ntp.conf文件是在系统启动的时候读取的,因此使用vi工具修改了ntp.conf文件之后,需要重启ntp服务,命令为:
修改后,时间也不是立刻就更新的。这是因为ntpd这个服务修改时间的方式是平滑时间变化,并且系统也不是立马就访问ntp服务器的,因此需要等一会。可以使用date命令查看当前时间。
手动校时
如果想要立刻修改时间,则可以手动设置时间,可以使用 timedatectl 命令。使用 timedatectl 命令可以看到当前的时间状态:
1. 修改时区
我这个已经修改过时区了,所以显示的是上海的时区。默认是UTC的时区,因此需要修改时区。
使用的命令
timedatectl list-timezones
列出所有的时区,可以在里面看到 “Asia/Shanghai”。然后使用
timedatectl set-timezone “Asia/Shanghai”
将时区设置为东八区的时间
2. 设置时间
然后就是使用timedatectl set-time命令设置时间,例如:
timedatectl set-time "2023-12-15 15:47:00"
如果直接设置的话,可能会报错,如下图所示。
这是因为ntp服务开启了,是自动校时的模式。因此需要先将ntp关闭,使用命令
timedatectl set-ntp false
关闭自动校时功能,然后再校时就可以了。
总结
通过上面的2种方式都能够校时,校时也是为了调用apt-get update指令,如果没有校时的话,调用update命令会返回下面的错误
这个错误就是因为系统时间差的太多造成,因此需要校时之后才能成功的更新包的信息。