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.

0
09.11.2016, 14:35
1 ответ

Вы недавно меняли TZ?

Когда вы меняете TZ с помощью smitty chtz_date, он обычно советует вам перезагрузиться.

Если вы просто выйдете/включитесь из системы - тогда эта сессия покажет вам новую TZ. Но уже запущенный процесс знает только о старой.

Все службы должны быть перезапущены, чтобы узнать о смене TZ. Вы не можете перезапустить init, поэтому советуем перезагрузиться.

В вашем случае я подозреваю, что это сработает, если вы убьете cron и позволите ему перезапуститься. Таким образом, вы сможете избежать перезагрузки.

Если это не исправляется перезагрузкой, добавьте echo $TZ, чтобы увидеть переменную в каждом окружении, в котором вы находитесь.

См. также Как изменить часовой пояс на UTC без перезагрузки AIX

EDIT: Вы проверяете наличие TZ в /etc/environment, но вы должны проверить, не переопределили ли вы его в:

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

Ссылка: AIX Korn shell environment

0
28.01.2020, 04:49

Теги

Похожие вопросы