需求:
将一台jenkins配置成自动部署到多台不同时区的应用服务器,并且执行shell脚本,最终不同时区的应用服务器按照应用服务器的时区进行执行。
配置:
jenkins服务器时区为+8,jenkins用户时区为+7,应用服务器时区为+7,shell脚本放在应用服务器上。
问题:
比如jenkins在北京时间20点时构建完成并执行远程脚本,在+7时区的应用服务器上的日志中的时间为20点,而预期应该为19点。
尝试过的方法: 1. 由于要部署到多台服务器,所以修改jenkins服务器时区就不能实现,因为总有几个服务器与jenkins服务器失去对不上的。 2. 修改过jenkins用户时区,但是没有用。
no server suitable for synchronization found:找不到适合同步的服务器。
既然找不到那好吧,我想自己搭建在管理机上搭建一台时间同步服务器NTP吧。
转念又一想:那岂不是要时时打开管理机,这可不好(毕竟我这笔记本性能不怎么高,同时跑的太多虚拟机,太卡了)。于是就想不如换台时间服务器同步吧,于是找到了中国ntp服务器:cn.pool.ntp.org
下面介绍操作方法(这里我以一台服务器为例):
环境: [root@db01 ~]# uname -r
2.6.32-696.el6.x86_64
[root@db01 ~]# uname -m
x86_64
[root@db01 ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
网络时间服务器 首先得确保这些服务器都能ping通否则是无法时间同步的。否则会报错“no server suitable for synchronization found”
中国国家授时中心:210.72.145.44 ----暂时无法使用 NTP服务器(上海) :ntp.api.bz 中国ntp服务器:cn.pool.ntp.org ---在这里我所使用的 pool.ntp.org
时间同步工具 rdate:rdate -s ntpdate:ntpdate -u(使用-u参数会返回误差,也可以使用-s) 以上两个工具都可以用来同步网络时间服务器,centos默认都有安装,两个工具的使用方法都很简单,本章主要介绍ntpdate工具,这个工具也是最常用的。如果没有安装安装方法如下: yum -y install ntp
同步时间
1.修改时区 \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime vim /etc/sysconfig/clock ZONE="Asia/Shanghai" UTC=false ARC=false
2.同步时间 [root@db01 ~]# /usr/sbin/ntpdate -u cn.pool.ntp.org 9 Aug 13:14:14 ntpdate[2837]: adjust time server 209.97.168.88 offset 0.005685 sec
3.写入硬件时间 服务器每次重启都会参考硬件的时间,所以需要将当前系统的时间写入到硬件。 查看当前硬件时间: [root@db01 ~]# hwclock -r 2018年08月09日 星期四 21时14分29秒 -0.735471 seconds 写入硬件时间: [root@db01 ~]# hwclock -w [root@db01 ~]# hwclock -r 2018年08月09日 星期四 13时14分44秒 -0.345959 seconds 自动时间同步 1.配置开机启动校验 vim /etc/rc.d/rc.local /usr/sbin/ntpdate -u cn.pool.ntp.org> /dev/null 2>&1; /sbin/hwclock -w 2.配置定时任务 vim /etc/crontab 00 10 * * * root /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w 或者 crontab -e 00 10 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w 测试结果:(两台虚拟机)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。