linux集群项目同步脚本

        又是在网上大量搜索而得不到满意结果的我,不得不自己搞一个出来,而且作为开发的我,写这么一个脚本,也是为作为开发却不得不搞运维工作的你提供一个方便!希望能帮到你!

        先说一下需求:springboot项目(jar包)同时部署到五台服务器上,每次更新包的时候,都得一台一台的去更新,很烦的,为什么不能实现一个自动化同步更新部署呢?那明白了需求之后呢,大家就知道这个脚本到底适不适合自己,这里呢我直接贴脚本代码,大家要灵活修改里面的内容哟!

正确使用步骤:

第一步:本地服务器能够免密登录到其他服务器,如果不能,请按以下步骤执行:

1.本地服务器生成公钥和私钥

ssh-keygen

2.将本地生成的公钥复制到远程服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.11

如果没有ssh-copy-id命令,直接cat ~/.ssh/id_rsa.pub将内容复制到远程主机的~/.ssh/authorized_keys文件中保存即可。

3.直接登录,或者rsync,或者其他操作,都不需要输入密码了。


以上操作以后  服务器可以免密登录的前提下  即可执行此脚本文件!

第二步:修改一下脚本为自己合适的脚本即可使用

脚本语法说明:ssh $1 "cd /data/app/web ; ./stop.sh && ./start.sh"

这句的意思是,在本地服务器执行远程服务器上的脚本,其中$1很重要,这样就可以执行一些命令重启远程服务器上的项目了,而且可以执行任何操作!

#!/bin/sh

JAVA_OPTS=/data/app/web/xxx.jar
LOG_OPTS=/data/app/web/boot.log
IPs=("root@192.168.1.1" "root@192.168.1.2" "root@192.168.1.3" "192.168.1.4")

sync(){
  echo "$1 开始同步!"
  rsync -avz $JAVA_OPTS $1:$JAVA_OPTS
  echo "$1 文件同步完成!"

  echo "$1 项目开始启动!"
  ssh $1 "cd /data/app/web ; ./stop.sh && ./start.sh"

  echo "$(date "+%Y-%m-%d %H:%M:%S") 开始检查项目是否启动"
  while [ -f $LOG_OPTS ]
  do
      result=`ssh $1 tail "$(date "+%Y-%m-%d %H:%M")" $LOG_OPTS | grep "content-server start success"`
      if [[ "$result" != "" ]]
      then
          echo "项目正在启动..."
          break
      else
          echo "项目等待启动中..."
          sleep 1s
      fi
  done

  echo "$1 项目启动成功!启动时间为:$(date "+%Y-%m-%d %H:%M:%S")"
}

for (( k=0; k <= 3; k++ ))
do
IP=${IPs[$k]}
sync $IP
done

echo "======================================================="
echo "======================================================="
echo "===================全部同步完成!======================"
echo "======================================================="
echo "======================================================="
echo "======================================================="

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值