如何在 Linux 上禁用夏令时 (DST) 和修改时区

许多国家/地区不遵循 DST ( Daylight Savings Time) 更改,默认情况下,它们被配置为使 DST 时间更改更改其系统时间,甚至在其上运行的数据库时间。
这篇文章概述了在 Linux 服务器上禁用 DST 和修改时区的步骤。

在此示例中,时间设置为每个巴西国家/地区,时区为 GST-3.

涉及的操作系统文件:

/etc/sysconfig/clock
/etc/localtime

如果我们查看服务器上的目录 /usr/share/zoneinfo/Etc,我们将看到按国家甚至按国家内时区划分的子目录。
我们需要确定目标主机的目录和子文件。

在我们的示例中,我们位于巴西的东海岸,GST-3:00。
有与 DST 硬编码不同的 zoneinfo 文件:

GMT
GMT0
GMT-0
GMT+0
GMT-1
GMT+1
GMT-2
GMT+2
GMT-3
GMT+3
GMT-4

因此,它们的目录/文件将是:/usr/share/zoneinfo/Etc/GMT-3

  1. 修改文件/etc/sysconfig/clock为:
# vi /etc/sysconfig/clock
ZONE="Etc/GMT-3"
UTC=true
ARC=false
  1. 按照以下步骤正确设置文件/链接 /etc/localtime :
# cd /etc
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime
# ls -al localtime
# date

上面的“ls -la localtime”命令应该将文件 /etc/localtime 显示为指向 /usr/share/zoneinfo/Etc/GMT-3 的符号链接。
此外,'date' 命令应该返回巴西 EastGST-3:00 的正确时间。

  1. 对于数据库,我们唯一需要确保的是 DB OS 所有者没有设置任何“TZ”环境变量。
    当数据库启动时,如果它们没有看到任何 TZ 变量集,它们将使用 OS 时间作为 DB 时间。

以数据库用户身份连接并运行:

# env |grep -i TZ

上述命令的输出应显示操作系统中没有设置为“TZ=”。
如果已经设置了某个时区,那么我们需要修改 Oracle Db 用户的配置文件,以便取消设置。

日期:2020-09-17 00:10:50 来源:oir作者:oir