问题描述:

给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小时制

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐