今天发现一台虚拟机下的系统日志:/var/log/messages,文件时间戳不对,跟正常时间差了12个小时。
按网上说的执行了service rsyslog restart重启syslog服务,还是不行。
后来只能在/etc/profile里面强制添加时区变量才恢复TZ='Asia/Shanghai';export TZ
这样做之后重启系统,发现文件时间戳对了,但是/var/log/messages里面的时间不对。
于是又上网找了一下,发现有一个 timedatectl status 可以查看和修改系统当前时区设置
运行了一下,发现我系统设置的是"Time zone: America/Los_Angeles (PDT, -0700)"
尝试运行timedatectl set-timezone "Asia/Shanghai",这下终于运行正常了
后来我查了一下,还有另一个查看当前系统时区的方法:ls -lrt /etc/localtime
在我系统上,显示是链接到../usr/share/zoneinfo/Asia/Shanghai
-------------------------------------------
总结一下系统日志时间在时区上差异问题的经验:
1 使用ls -lrt /etc/localtime,检查系统分区设置是否正确
2 如果不正确可以使用timedatectl命令修改
3 如果时区正确,但是date命令显示还是有问题,可以使用env|grep TZ,看时区变量是否正常
4 正常的时区设置应该是这样:TZ='Asia/Shanghai';export TZ