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

目的:实现本地与服务器的数据同步更新,简图如下:

 

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

步骤:

1、在云服务器上安装宝塔,图形化界面还是很好用的

Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2、在码云上面建立自己的代码仓库 ,建立 好后将仓库git clone 到本地

3、配置宝塔上面的web hooks ,实现将本地代码提交到码云仓库后自己 更新到云服务器

添加密钥到码云   

  1. ssh-keygen -t rsa

  2. cat id_rsa.pub 
  3. 宝塔利用git+ webhooks 实现git更新远程同步云服务器_第2张图片
  4. 把ssh-rsa全部字符串添加到码云部署项目公钥设置里边

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

下面就开通宝塔的webhooks 功能

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

点击设置 添加 hook,创建的时候 脚本 写个# 保存,后面编辑具体内容

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

点开查看密钥, http://ip:端口/hooks?access_key=密钥param=git项目名 ,网站项目名需跟码云的项目名保持一致

具体代码:

#!/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

这边结束后,转到码云的

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

就可以本地上传个文件 测试 同步了

你可能感兴趣的:(PHP)