Linux | Centos/Debian 修改系统时区

案例

很多朋友拿到一台 VPS,执行 date -R 发现时区并不是北京时间。为了业务上的需要,我们需要改掉它。

解决过程

Centos 7+

在 CentOS 7 中可以使用 timedatectl 命令帮助我们修改服务器的时区。

我们可以使用 timedatectl 命令查看目前服务器里的时区设置:

Local time: Sat 2016-04-09 12:34:29 CST
Universal time: Sat 2016-04-09 04:34:29 UTC
RTC time: Sat 2016-04-09 04:34:29
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a

可以看到目前服务器里的所有设置比如时间、时区、NTP 等等。

查看所有的时区:

timedatectl list-timezones

设置时区:

timedatectl set-timezone timezones

例如我们需要设置成上海的时间区:

timedatectl set-timezone Asia/Shanghai

设置完时区后当然还可以设置NTP服务器的开启和关闭:

开启NTP:”timedatectl set-ntp yes

关闭NTP:”timedatectl set-ntp no

当然 timedatectl 命令还可以设置日期与时间:

设置日期:”timedatectl set-time YYYY-MM-DD

设置时间:”timedatectl set-time HH:MM:SS

— 注意此方法仅适用于:CentOS 7+ / RHEL 7+ / Fedora 20+

让系统时间与本地时区时间自动同步

有时候,即使你正确设置好了时区,你的系统时间仍然有可能不准确。我们可以使用NTP协议来让系统时间与本地时区时间自动同步。

许多程序需要准确的时间才能发挥应有的功能。而NTP可以为网络上的机器提供精确的时间。NTP是一个应用层协议,使用UDP作为传输层协议。NTP时间服务器从原子钟(atomic clock)获取精确的时间。

使用Systemd的Linux系统可以用以下命令启用NTP网络时间自动同步。

timedatectl set-ntp true

这条命令会启动systemd-timesyncd服务。查看NTP状态 。

timedatectl status

Debian 7+

在网上很多使用通过添加tz变量来设置时区的,但是博主并不推荐。明明有更快捷的方法,为什么不用呢?

直接执行如下命令:

dpkg-reconfigure tzdata

在列表中选择:Asia-> 回车 ->Shanghai 回车即可。

Let’s block ads! (Why?)

此条目发表在日常分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注