上个帖子讨论了git的自动web发布流程,但实际测试过程中发现存在用户权限问题,导致更新出错。今天在服务器上采用incron结合git进行自动发布,可以完美解决(或避开)权限问题。
1. git hooks post-receive部分
此处仅创建一个临时文件,比如heihedata.update.lck
#!/bin/bash touch /home/wlx/heihedata.git/hooks/heihedata.update.lck
2. incron部分
使用incron监测post-receive生成的文件,然后使用root账号进行更新操作。
设置incron
/home/wlx/heihedata.git/hooks/heihedata.update.lck IN_CLOSE_WRITE /root/heihedata.sh
执行的脚本
#!/bin/bash cd /home/wlx/heihedata.git GIT_WORK_TREE=/var/www/heihedata.org/ git checkout heihedata -f rm /home/wlx/heihedata.git/hooks/heihedata.update.lck
发表回复