宝塔利用git+ webhooks 实现git更新远程同步云服务器
目的:实现本地与服务器的数据同步更新,简图如下:
步骤:
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 ,实现将本地代码提交到码云仓库后自己 更新到云服务器
添加**到码云
-
ssh-****** -t rsa
- cat id_rsa.pub
- 把ssh-rsa全部字符串添加到码云部署项目公钥设置里边
下面就开通宝塔的webhooks 功能
点击设置 添加 hook,创建的时候 脚本 写个# 保存,后面编辑具体内容
点开查看**, 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
这边结束后,转到码云的
就可以本地上传个文件 测试 同步了