在 Oracle Solaris 11.2 中更改时区

在 Oracle Solaris 11.2 中更改时区

我很困惑:在新安装的 Solaris 11.2 上更改 TZ 的正确方法是什么?

我找到了这些,但不确定使用哪个:

答案1

要回答您的问题,请使用第二个链接中的说明(此处总结)。这将更改打印或返回时间的库和实用程序的系统范围默认时区。它不会影响硬件(或虚拟机的虚拟机主机基础设施)中实时时钟的实际内容。 rtc命令用于配置硬件中存储的实际时间。如果您要在同一硬件上频繁地从 Solaris 重新启动到 Windows,并且需要确保它们都了解存储在硬件实时锁定芯片中的时间值,那么您需要担心这一点。

在 Solaris 11.2 中,您可以使用 nlsadm 实用程序来设置此项。

# date
Tuesday, December 15, 2015 08:54:04 PM UTC
# nlsadm get-timezone
timezone=UTC
# nlsadm list-timezone | grep US/Pacific
US/Pacific
# nlsadm set-timezone US/Pacific
Reading IPS package information ...
Setting SMF property timezone/localtime with value: 'US/Pacific' ...
Successfully set
# date
Tuesday, December 15, 2015 12:54:24 PM PST

您可能需要使用以下命令安装 nls-administration 软件包

# pkg install nls-administration

nlsadm 实用程序有一个手册页,它与二进制文件一起安装。这是描述该过程的文档的链接。

http://docs.oracle.com/cd/E36784_01/html/E39134/gllkr.html

在幕后,nlsadm 实用程序将使用先前答案中描述的 svccfg 命令。在这些内容的下面,/etc 中有一个用于向后兼容的符号链接。没错,它只是一直覆盖到下面。 :-)

答案2

您应该TZ=localtime在 Solaris 11 上使用。它是指向实际时区文件的符号链接,但它允许切换时区而无需重新启动进程。

该符号链接是由svc:/system/timezone:defaultSMF 服务创建的,因此只需更新其配置即可:

# svccfg -s timezone:default
svc:/system/timezone:default> setprop timezone/localtime = Europe/Moscow
svc:/system/timezone:default> end
# svcadm refresh timezone

答案3

nlsadm还可以用于设置时区以及其他区域设置细节,例如语言和键盘。

查找时区:

Solaris11 [8]#nlsadm list-timezone | grep -i <TIME_ZONE>

设置时区:

Solaris11 [9]#nlsadm set-timezone <TIME_ZONE>

相关内容