宝塔利用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,没有的话可以自行安装
添加**到码云
把ssh-rsa全部字符串添加到码云部署项目公钥设置里边
为了避免git pull 输入用户名密码,先把用户名密码加上
2.宝塔面板 安装 宝塔 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/$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命令进去保存,需要使用命令重启宝塔
http://ip:端口/hooks?access_key=**¶m=git项目名
网站项目名需跟码云的项目名保持一致
上述地址添加到码云
可同时推送多个服务器,已方便使用负载均衡