centos6.9的时区同步问题解决过程

最近在centos6.9系统遇到个定时任务(crontab)和系统日志时间与系统时间不一致的问题;

问题描述

在查看现网数据库备份文件是发现,备份文件的生成时间与备份脚本中date命令的时间不一致,脚本在crontab执行时,date命令输出的时间比系统时间完了8小时。

如图:文件的生成时间为2018-12-21 02:12,但是压缩包的时间为2018-12-20

备份脚本中压缩命令为:tar czf ./gw_data_center_`date '+%m-%d-%Y_%H-%M-%S'`.sql.tar.gz ./gw_data_center.sql 

备份文件时间截图   

查看本地时间查看问题

写个简单脚本(testDate.sh)

[root@lypt-storage1 zhufei]# cat testDate.sh

#!/bin/bash

echo `date -R` >> 2.log

export TZ='Asia/Shanghai'

echo "`date '+%m-%d-%Y_%H-%M-%S'`" >> 1.log

测试时间脚本在crontab中执行,发现在crontab执行下结果为

[root@lypt-storage1 zhufei]# cat 2.log

Wed, 26 Dec 2018 05:51:01 +0000

直接在控制台执行

[root@lypt-storage1 zhufei]# date -R

Wed, 26 Dec 2018 13:51:01 +0800

可以看到手动执行的结果时间正常,但是crontab执行date的结果晚了8小时。

问题升级

重启crond、rsyslog后,crontab任务不能按照时间点执行,且系统日志时间也晚了8小时。

问题解决

在执行cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime、export TZ='Asia/Shanghai'之后问题都未能解决。

回到刚才的testDate.sh脚本,发现在export TZ='Asia/Shanghai'后date -R的执行结果时间与系统时间一致,且时区变为了东八区。

那么,在/etc/init.d/crond和/etc/init.d/rsyslog中加入export TZ='Asia/Shanghai'后能否成功呢?

结果:加入后重启crond和rsyslog,问题得到了解决。

疑问

其实,问题得到了解决,但是本质并没有得到解决:

1)、明明在~/.bashrc和/etc/profile中都已经配置了export TZ='Asia/Shanghai',为什么没有生效?

2)、hwclock --showtime与系统时间一致, hwclock --showtime(硬件真正时间)也比系统时间满了8小时,难道crontab和rsyslog是取得硬件时间?------->通过其他主机查看,取得并不是硬件时间。

3)、难道是centos6.9的影响?可能这个原因影响比较大

总结:通过/etc/init.d/server_name来定义环境变量是之后解决单独问题的一个方法。

你可能感兴趣的:(centos6.9的时区同步问题解决过程)