处理Jenkins时间异常,与实际不符问题【可能会导致代码自动同步失败、测试成功】

艺帆风顺 发布于 2025-04-03 21 次阅读


每次重启服务器,Jenkins时间会自动变化,查了很多版本的解决方法,汇总如下:

方法一、Jenkins----->系统管理----->脚本命令行

代码如下(示例):

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

或者在如下中:

方法二、用户--设置--用户定义的时区

方法三、修改虚拟机系统日期&时区

1.修改系统时间

安装在虚拟机上的CentOS7的时间分为系统时间和硬件时间。二者都修改,重启系统(init 6 )才会永久生效。

修改步骤如下:直接在CentOS中输入如下命令:

     1).查看当前系统时间 date 2).修改当前系统时间 date -s "2018-2-22 19:10:30 3).查看硬件时间 hwclock --show 4).修改硬件时间 hwclock --set --date "2018-2-22 19:10:30" 5).同步系统时间和硬件时间 hwclock --hctosys 6).保存时钟 clock -w 7).重启系统(init 6)后便发现系统时间被修改了

    2.修改时区

    方法1

     cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    方法2

    使用timedatectl命令

      timedatectl list-timezones |grep Shanghaitimedatectl set-timezone Asia/Shanghai

      参考链接:centos7永久修改系统时间、修改时区_wy20210818的博客-CSDN博客_centos 修改时间

      方法四、 vmware 相差8小时

      如果linux系统是在vmware虚拟机中,并且上面的设置不生效,则继续按下方的步骤进行设置。 

      参考链接: linux 时间处理(差8小时)_菜鸟小窝的博客-CSDN博客_linux时间差8小时

      方法五、进docker容器修改jenkins时间

      1.查看时间

      1)先查看宿主机的系统时间

          date -R

      2)查看容器id

          docker container ls -a

      3)进docker容器查看时间

          docker exec -it -u root 容器id /bin/bash

      4)查看容器内部的系统时间,跟宿主机的不一致

        date -R

      5)查看容器内部系统时区,显示的是Etc/UTC

        root@cb8e397d5308:/# cat /etc/timezoneEtc/UTC

        2.修改容器时间

        1)容器内部创建Asia时区文件

        echo Asia/Shanghai >/etc/timezone

        2)localtime可以从宿主机拷贝到容器内部(exit退出容器,在宿主机上操作docker cp)

        docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime

        查看Jenkins上的时间就可以正常显示了

        参考链接:jenkins学习6-进docker容器修改jenkins时间_上海-悠悠的博客-CSDN博客_docker jenkins时间

          版权声明:本文内容来自CSDN:JoanTester,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://blog.csdn.net/weixin_42051799/article/details/126481037如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。