首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用cronjob的Git自动拉取

使用cronjob的Git自动拉取
EN

Stack Overflow用户
提问于 2010-12-11 07:14:43
回答 7查看 88.3K关注 0票数 67

我尝试创建一个cronjob,任务是每分钟执行一次git pull,以使我的生产站点与我的主分支保持同步。

由于权限问题,git拉取需要由系统用户nobody完成。但是,似乎不允许nobody帐户运行命令。因此,我必须以root用户的身份创建任务。

我尝试的crontab条目:

代码语言:javascript
复制
*/1 * * * * su -s /bin/sh nobody -c 'cd ~heilee/www && git pull -q origin master' >> ~/git.log

它不工作,我不知道如何调试它。

有人能帮上忙吗?

UPDATE1:git pull命令本身是正确的。我可以毫无错误地运行它。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-12-11 16:39:58

解决方案:

代码语言:javascript
复制
*/1 * * * * su -s /bin/sh nobody -c 'cd ~dstrt/www && /usr/local/bin/git pull -q origin master' 
票数 39
EN

Stack Overflow用户

发布于 2010-12-11 11:30:19

虽然你首先需要弄清楚如何让更新生效,但你最好从上游使用一个钩子来使其生效。你可以简单地从post-commit钩子中使用curl,或者如果你使用的是github,那么只需在它们的一侧使用post-receive钩子。

票数 12
EN

Stack Overflow用户

发布于 2012-07-12 02:40:40

代码语言:javascript
复制
*/1 * * * * su -s /bin/sh nobody -c 'cd /home/heilee/src/project && /usr/bin/git pull origin master'

这纠正了一些错误,这些错误阻止了接受的答案在我的系统(Ubuntu >10.04服务器)上工作。关键的变化似乎是在pull之后而不是之前的-q。在跟踪/var/log/syslog文件或尝试运行未更新的生产代码之前,您不会注意到拉不起作用。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4414140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档