利用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公钥)
步骤二:
宝塔面板安装宝塔插件-宝塔WebHook,设置,添加钩子脚本
#!/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=秘钥¶m=mla.xin),将网址粘贴到Git平台上新建WebHook中的URL里。