笔记反复测试并未成功,请慎重操作
服务器端部署免密公钥
生成公钥
ssh-keygen -t rsa -b 4096 -C "gorgle@gorgle.online"
coding项目中部署公钥
复制~/.ssh/id_rsa.pub下的内容,到coding对应的项目中部署公钥
测试部署是否成功
ssh -T git@git.coding.net
服务器端脚本及日志编写
安装使用inotify-tools时时监控文件改变
sudo apt-get install inotify-tools
新建脚本存放目录
cd /home/gorgle
mkdir scripts
mkdir scripts/logs
编写看门狗脚本
进入 /home/gorgle/scripts,新建文件 vim watchdog.sh 写入下面命令
#!/bin/bash
WAIT_DIR=${1-/tmp/git-watchdog/}
inotifywait -qme attrib,modify,move,create,delete $WAITDIR --format '"%w" "%f" "%e" "%T"' --timefmt='%F%T' \
| while read DIR FILE EVENT TIME ;do
echo $DIR $FILE $EVENT $TIME
eval "str=${FILE}"
dir="/home/www/${str}/"
cd $dir
git pull
done
编写启动文件
进入 /home/gorgle/scripts,新建文件 vim startup.sh 写入下面命令
#!/bin/bash
mkdir /tmp/git-watchdog
echo '' > /tmp/git-watchdog/wechat
chmod 666 /tmp/git-watchdog/wechat
su - gorgle -c "nohup /home/gorgle/scripts/watchdog.sh > /home/gorgle/scripts/logs/git.log 2>&1 &"
因为使用 google 用户做的ssh部署,故使用su - google -c "" 执行watchdog.sh
加预启动文件到开机启动文件
将预启动文件放入开机自启动文件/etc/rc.local的exit 0上方
sh /home/gorgle/scripts/startup.sh
建webhooks访问的站点
新建一个站点gorgle.online,用于coding.net的webhook访问。因https会报400错误,所以该站点需使用http方式。在站点对应的入口目录新建 project.PHP ,编写如下代码
PHP
touch('/tmp/git-watchdog/wechat');
echo 'ok';
coding设置webhook
coding.net上设置webhook访问URL:PHP">http://gorgle.online/project.PHP