2021年6月

利用Git+ 宝塔WebHook 实现git更新远程同步到Linux服务器中的多个目录

希望本地项目push到Git平台(Coding、码云、GitHub)上后,自动pull到Linux服务器,实现本地与服务器上的多个目录的数据同步更新。

环境:(Coding 开放平台+Linux宝塔+Git,当然其他git平台同样适用,只要Git的平台支持WebHook 即可。
需求:本地项目同步到Git平台,服务器自动同步Git平台上的数据。
目的:希望本地项目push到Git平台(Coding、码云、GitHub)上后,自动pull到Linux服务器,实现本地与服务器的数据同步更新。

项目目录1: /www/wwwroot/mla.xin (mla.xin变量,自定义)
项目目录2: /www/wwwroot/mla.xin2 (mla.xin2变量,自定义) ...

可以有更多的目录

步骤一:

宝塔自带 git(没有的话可以自行安装),生成公钥后添加公钥到Coding (可以通过ssh 拉取coding上的代码)

ssh-keygen -t rsa

一路回车即可,公钥的位置/root/.ssh/id_rsa.pub,将里面的公钥复制粘贴到 Coding (个人设置-SSH公钥)

步骤二:

宝塔面板安装宝塔插件-宝塔WebHook,设置,添加钩子脚本

#!/bin/bash
echo ""
echo "Start..."
#gitPULL 函数
function gitdis()
{
    starttime=$(date +%Y-%m-%d\ %H:%M:%S)
    echo $starttime
    echo "########## Web站点路径:$1 开始复制"
    #判断项目路径是否存在
    if [ -d "$1" ]; then
            cd $1
            #判断是否存在git目录
            if [ ! -d ".git" ]; then
                    echo "在该目录下克隆 git"
                    git clone $gitHttp gittemp
                    mv gittemp/.git .
    rm -rf gittemp
            fi
            #拉取最新的项目文件
            git pull
            #设置目录权限
            echo "End"
    else
            echo "该项目路径不存在"
            echo "End"
    fi

    echo "Web站点路径:$1 拉取成功"
}
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
#git 网址
gitHttp="https://git.dev.tencent.com/yundun/tmla.git"
#git项目路径
gitdis "/www/wwwroot/mla.xin"
gitdis "/www/wwwroot/mla.xin2"

exit

其中git网址在Git平台那可以查询到,之后生成webhook URL(http://面板/hook?access_key=秘钥&param=mla.xin),将网址粘贴到Git平台上新建WebHook中的URL里。

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

利用Git+ 宝塔WebHook 实现git更新远程同步到Linux服务器

希望本地项目push到Git平台(Coding、码云、GitHub)上后,自动pull到Linux服务器,实现本地与服务器的数据同步更新。

环境:(Coding 开放平台+Linux宝塔+Git,当然其他git平台同样适用,只要Git的平台支持WebHook 即可。
需求:本地项目同步到Git平台,服务器自动同步Git平台上的数据。
目的:希望本地项目push到Git平台(Coding、码云、GitHub)上后,自动pull到Linux服务器,实现本地与服务器的数据同步更新。

项目目录: /www/wwwroot/mla.xin (mla.xin变量,自定义)
远程Git版本库: Coding 腾讯云开放平台

步骤一:

宝塔自带 git(没有的话可以自行安装),生成公钥后添加公钥到Coding

ssh-keygen -t rsa

一路回车即可,公钥的位置/root/.ssh/id_rsa.pub,将里面的公钥复制粘贴到 Coding (个人设置-SSH公钥)

1.png

步骤二:

宝塔面板安装宝塔插件-宝塔WebHook,设置,添加钩子脚本

2.png

#!/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/mla.xin"
#git 网址
gitHttp="https://git.dev.tencent.com/yundun/swt.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 pull
        #设置目录权限
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

其中git网址在Git平台那可以查询到,之后生成webhook URL(http://面板/hook?access_key=秘钥&param=mla.xin),将网址粘贴到Git平台上新建WebHook中的URL里。

/* * @Author: your name * @Date: 2016-09-06 00:00:00 * @LastEditTime: 2020-03-17 18:29:35 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \htdocs\usr\themes\default\footer.php */