准确的系统时间是提供稳定服务的基础,本文介绍一下时间,时区,时间同步的读取与设置。
日期时间的获取与设置
一台Linux服务器有两个时间源,一个是硬件时间,即服务器硬件CMOS维护的时间,还有一个是软件时间,即操作系统维护的时间,前者通过hwclock命令来访问,后者则主要通过date命令来访问。
# 获取当前时间
$ date
Thu Jun 6 12:22:15 CST 2019
# 设置当前时间
$ sudo date -s "2019-06-06 00:00:00"
Thu Jun 6 00:00:00 CST 2019
读写硬件时间
服务器每次重启都会参考硬件的时间,所以需要将当前系统的时间写入到硬件。
hwclock命令用于访问服务器的硬件CMOS时间,注意读取都需要root权限。
# 获取系统硬件时间
$ sudo hwclock
Thu 06 Jun 2019 12:25:29 PM CST -0.789946 seconds
# 设置操作系统的软件时间,与系统硬件时间同步
$ sudo hwclock -s
# 设置系统硬件时间,与操作系统的软件时间同步
$ sudo hwclock -w
时区设置
- 查看当前时区
命令 : “date -R”
$ date -R
Thu, 06 Jun 2019 12:27:55 +0800
- 修改设置Linux服务器时区
下面选一个命令即可。
$ tzselect
# 选Asia/China/Beijing Time,然后确认,会设置为“Asia/Shanghai”时区。
$ tzconfig
# 选择Asia -> 再选择Shanghai或Chongqing-> OK
如果上述命令不存在请使用下面的命令:
$ dpkg-reconfigure tzdata
防止系统重启后时区改变:
$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
时间同步
Linux操作系统维护的软件时间随着服务器的长时间运行会出现漂移,最终会越来越不准确。不准确的系统时间会对依赖时间的服务带来影响,例如数据库,认证等,因此需要维持一个相对准确的服务器时间。
CentOS下的时间同步。
# 安装ntp服务的软件包
sudo yum install ntp
# 将ntp服务设置为缺省启动
sudo chkconfig ntpd on
# 修改启动参数,增加-g -x参数,允许ntp服务在系统时间误差较大时也能正常工作(nano未安装是使用vi编辑)
sudo nano /etc/sysconfig/ntpd
# 启动ntp服务
sudo service ntpd restart
Ubuntu/Debian下安装配置ntp服务的步骤如下:
# 安装ntp服务的软件包
sudo apt install ntp
# 修改启动参数,增加-g -x参数,允许ntp服务在系统时间误差较大时也能正常工作(nano未安装是使用vi编辑)
sudo nano /etc/default/ntp
# 启动ntp服务
sudo service ntp restart