AIX:为什么使用 su 或 crontab 时时区不同?

AIX:为什么使用 su 或 crontab 时时区不同?
3:root@SERVER:/root # cat wtf.sh
echo "date"
date 
echo "su - root -c date"
su - root -c date
3:root@SERVER:/root # 
3:root@SERVER:/root # ksh wtf.sh
date
Wed Nov  9 13:15:01 MEZ 2016
su - root -c date
Wed Nov  9 12:15:01 UTC 2016
3:root@SERVER:/root # grep TZ /etc/environment
    TZ=MEZ-1MESZ-2,M3.5.0/02:00,M10.5.0/03:00
3:root@SERVER:/root # oslevel -s
6100-09-06-1543
3:root@SERVER:/root # 

为什么它们不同?

即使 crontab 显示 UTC,但系统 TZ 是 MEZ。

答案1

你最近换过TZ吗?

当您更改 TZ 时,smitty chtz_date它通常会建议您重新启动。

如果您只是注销/登录 - 那么该会话将向您显示新的 TZ。但已经运行的进程只知道旧的。

然后需要重新启动所有服务以适应 TZ 更改。您无法重新启动,init因此建议重新启动。

就你而言,我怀疑如果你杀死cron并让它重新启动,它会起作用。这样您就可以避免重新启动。

如果通过重新启动无法解决此问题,请添加echo $TZ以查看您所在的每个环境中的变量。

也可以看看如何在不重新启动 AIX 的情况下将时区更改为 UTC

编辑:您检查 TZ/etc/environment但您应该检查是否覆盖它:

/etc/profile
$HOME/.kshrc
$HOME/.profile

参考:AIX Korn shell 环境

相关内容