git通过crontab自动拉

时间:2012-11-28 14:44:38

标签: git cron crontab

我想将我的服务器上的git存储库同步到我的本地网络服务器。我读到的所有指南都引起了不同的错误,现在我真的很绝望。如果你已经读了这个问题一百次,我很抱歉,但我仍然没有得到它 - .-

  • 使用Linux SuSE并通过SSH连接PuTTY
  • 我需要同步的webprojekt在文件夹中:/ srv / www / htdocs / my_project
  • git存储库位于:/ srv / git / repository / my_project
  • 我有用户:“root”和“cron”

cron应该每分钟或更少地使用用户“cron”执行此命令:

cd /srv/www/htdocs/my_project
git pull origin
(git fetch) <-- not mandatory

当我手动输入这些命令时,这些命令可以正常工作。 (除了我每次都要输入用户密码)

In this question I got some informations, but I always get an error when I try them myself

我的cron应该是这样的:

* * * * * su -s /bin/sh cron -c 'cd /srv/www/htdocs/my_project && /usr/local/bin/git pull origin master' 

我在我的PuTTY上执行了这个操作,它回复了我: -bash:bin:命令未找到

我的下一次尝试是:

crontab * * * * * su -s /bin/sh cron -c 'cd /srv/www/htdocs/my_project && /usr/local/bin/git pull origin master'

错误:crontab:无效选项 - 's'

错误:crontab:使用错误:无法识别的选项

我尝试了更多组合(删除su -s或删除-c等)但它从未按照我的意愿工作-.-我不应该在PuTTY上执行此命令吗?

很高兴知道:我是一名Linux和GIT初学者,昨天开始使用它并且实际上已经设法做了很多。 ( ^。^ )所以我很乐意有一个可以理解的解释,我做错了什么,我要做什么。这令人困惑。

1 个答案:

答案 0 :(得分:2)

实现您想要的最简单的方法(让git存储库自动部署在您的服务器上)是将git存储库放在您的Web服务器中,并使用钩子进行推送检查。在这个答案中描述了如何做到这一点:Deploy a project using Git push