问题描述:
给Linux部署执行定时同步jar包的服务的时候,发现部署的Linux服务器是12小时制的,导致定时在23点执行一次的服务,在上午11点和晚上23点都执行了。以下是我尝试过的解决办法:
解决方案:
1、重新修改时区
#重新调整时区为上海+8区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
执行结束后,在命令行输入date,可以发现系统时间已经变成了24小时制,但是我进入jar包输出的日志发现,它还是12小时制
—
2、考虑是否是系统时间未同步
我就尝试用ntpdate同步标准时间
ntpdate us.pool.ntp.org
我发现ntpdate不适用于centos8服务器,然后尝试使用chrony,结果又遇到同步仓库 ‘AppStream’ 缓存失败的问题。
解决方法:
1、首先定位到目录/etc/yum.repos.d下
2、将目录下的BaseOS,AppStream文件都删除,我的建议是改名字就行,没必要删除掉
3、其次使用命令:
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
解决同步仓库 ‘AppStream’ 缓存失败的问题,安装chrony就不会遇到问题了
#安装命令
yum -y install chrony
# 启动命令
systemctl enable chronyd
systemctl start chronyd
#编辑对应文件命令
vim /etc/chrony.conf
配置文件里面我修改了 对应的时间服务器地址,设置为阿里云的时间服务地址
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.aliyun.com iburst
# Allow NTP client access from local network.
allow 192.168.200.222/24
systemctl enable chronyd
systemctl restart chronyd
# 查看时间同步状态
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true
执行完上面的操作之后,jar包中的时间还是12小时制,这时可以尝试重启jar包,查看是否还是12小时制。我这边还是12小时。
3、怀疑第一种方法的时区是否有缺陷
换了一种修改时区的方法:
输入以下命令:
1、查找Asia(亚洲),输入对应的数字+回车。注意:不同Linux对应的数字不一样
2、然后再找china,输入对应的数字+回车。
3、选择BeiJing Time(北京时间)
4、最后选择yes
5、编辑配置文件:
vi /etc/sysconfig/clock
在配置文件里面加个zone = Asia/Shshanghai,别的不用管
6、删除 rm -rf /etc/localtime
7、创建软连接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
8、重启自己的jar包,查看输出日志是否时间已变成正常的24小时制