问题来源:
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即使用了夏时制