宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器

目的:希望web程序push到gitee上后,自动pull到阿里云服务器,实现本地与服务器的数据同步更新

借鉴宝塔论坛的方法:https://www.bt.cn/bbs/thread-5348-1-1.html

服务器环境:centos7.3,Nginx

项目目录: /www/wwwroot/www (www变量,自定义)

远程git版本库: 码云

步骤:

1. 准备工作

宝塔自带 git,没有的话可以自行安装

添加密钥到码云

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第1张图片 

把ssh-rsa全部字符串添加到码云部署项目公钥设置里边

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第2张图片

为了避免git pull 输入用户名密码,先把用户名密码加上

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第3张图片

2.宝塔面板 安装  宝塔  webhook 

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第4张图片

执行脚本代码

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址
gitHttp="https://gitee.com/isu5cn/$1.git"
 
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi
编辑框输入的命令会被过滤,点击编辑重新添加shell命令进去保存,需要使用命令重启宝塔

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第5张图片

http://ip:端口/hooks?access_key=密钥¶m=git项目名

网站项目名需跟码云的项目名保持一致

上述地址添加到码云

宝塔利用git+ webhooks 实现git更新远程同步阿里云Linux服务器_第6张图片

可同时推送多个服务器,已方便使用负载均衡

你可能感兴趣的:(git,git)