问题来源:

was的日志比date出来的系统时间晚了一个小时

环境:

root:CRM-TEST:/crm/crmuser/shellscript#oslevel
6.1.0.0
root:CRM-TEST:/crm/crmuser/shellscript#





问题解决:



1、smitty命令

smitty chtz(AIX6.1 中使用smitty  chtz_date)

或者  smitty --> System Environments -->Change/Show Data and Time -->Change Time Zone Using System Defined Value

 

系统提示是否使用夏令时:" Does this time zone go on DAYLIGHT SAVINGS TIME? ” ,在选项中移动光标选择“2 no”(建议选择no,否则使用夏令时会导致1年时间变化两次,可能会导致数据库或者应用异常)

然后在时区列表中选择相应的时区,比如BEIST-8,TAIST-8,如下图:


 

AIX 6.1中可选择 Asia/Shanghai,Asia/Chongqing,Asia/Harbin,Asia/Urumqi等,如下图示例

 


 

修改完成后,重启操作系统 或者 执行/etc/enviroment使其生效。

建议通过重启使其生效,重启命令 shutdown -Fr 。

 

2、chtz命令

chtz命令是通过修改 /etc/environment 文件中的 TimeZoneInfo(TZ)环境变量来达到修改时区的功能。如果命令执行成功,返回值为0,如果不成功,则返回非零值。

示例: chtz BEIST-8

 

3、修改环境变量文件/etc/environment中TZ的值

 

# vi /etc/environment

将其中TZ的值修改为合适的值,比如BEIST-8

修改完成后,重启操作系统 或者 执行/etc/enviroment使其生效。

建议通过重启使其生效,重启命令 shutdown -Fr 。

 

验证

方法1:使用date命令查看时区部分

方法2:echo $TZ

方法3:grep TZ /etc/enviroment

---

root:CRM-TEST:/crm/crmuser/shellscript#echo $TZ          
WAUST-8WAUDT
#修改后
root:CRM-TEST:/crm/crmuser/shellscript#. /etc/environment
root:CRM-TEST:/crm/crmuser/shellscript#echo $TZ
Asia/Shanghai
root:CRM-TEST:/crm/crmuser/shellscript#date
Tue Jun  3 15:12:34 CST 2014

可以看到修改后时间往前调了一个小时

修改系统时间

root:CRM-TEST:/crm/crmuser/shellscript#date -n 0603161614    #2014-06-03 16:16:14
Tue Jun  3 16:16:28 CST 2014
root:CRM-TEST:/crm/crmuser/shellscript#date
Tue Jun  3 16:16:30 CST 2014

或者使用smit date修改系统时间

解释:

AIX缺省4-8月使用夏时制,可用#echo $TZ判断,输出结尾为DT即使用了夏时制