Linux时间不一致导致调用腾讯云短信服务出错
问题出现
在调用腾讯云的短信服务时,本地测试正常,部署到服务器上出错。
InternalError.RequestTimeException
原因是发送短信的参数中有时间校验,时间与腾讯云的接口服务器时间相差超过十分钟则会报错。
问题分析
首先,腾讯云接口的服务器时间肯定不会出错,其次,本地测试正常,部署到服务器上出错,说明代码没有错,本地时间也是对的,服务器的时间出了问题。
猜测问题可能是时区不一致,导致服务器时间与对应时区时间相差8小时。首先确定时区
# TODO
其次确定时间是否一致,包括BIOS时间和系统时间
date
最后发现,服务器BIOS时间正确,系统时间不正确。将系统时间同步为BIOS时间。(手动设置秒可能会有误差)
# 设定时间
# date -s "2006-11-23"
# date -s "22:07:21"
# date -s "2005-6-4 17:26"
# 同步系统时间
# hwclock --show 显示bios时间
# hwclock --systohc 将系统时间写入bios
# hwclock --hctosys 将bios时间写入系统
# hwclock --help 显示帮助
问题解决。