如何通过cron同步Git Svn克隆?
作为参考,我在服务器上运行CentOS 5.5 我正在和其他几个开发人员一起进行一个分布式项目,我们正在使用Git来管理我们的存储库。一切都在Gitorious上直播,工作得很好。然而,我们需要存储库中的一个分支来与外部Subversion repo保持同步—有点像Git中的“供应商分支”。原因是:我们正在基于现有的开源项目(WordPress)构建一些东西,并希望我们的工作副本继承他们在自己的repo中发布的任何错误修复 我已经把事情安排好了,这样我们就有了一个单独的分支,叫做“wordpress”,它可以与live Subversion repo保持同步。要做到这一点,很简单:如何通过cron同步Git Svn克隆?,cron,git-svn,centos,Cron,Git Svn,Centos,作为参考,我在服务器上运行CentOS 5.5 我正在和其他几个开发人员一起进行一个分布式项目,我们正在使用Git来管理我们的存储库。一切都在Gitorious上直播,工作得很好。然而,我们需要存储库中的一个分支来与外部Subversion repo保持同步—有点像Git中的“供应商分支”。原因是:我们正在基于现有的开源项目(WordPress)构建一些东西,并希望我们的工作副本继承他们在自己的repo中发布的任何错误修复 我已经把事情安排好了,这样我们就有了一个单独的分支,叫做“wordpre
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
这些命令将:
wordpress.sh
的脚本,并将其放置在服务器上的/etc/
文件夹中:
#!/bin/bash
cd /var/www/git/wordpress
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
脚本运行得很好。我可以使用SSH连接到服务器,以root用户身份登录,然后键入/etc/wordpress.sh
一切正常。但是我如何设置它,让cron为我做事呢
我曾尝试手动将其添加到crontab(未成功),使用CentOS中的Webadmin界面将其作为每小时脚本添加(未成功),现在我不知所措!我的系统日志声称它正在启动(以下日志):
但是,除非我登录并手动运行脚本,否则实际上什么都不会发生。想法?您是否以
root用户身份运行站点?您是否以root用户身份手动运行脚本?我希望你不要
现在看看cron输出:它从根帐户运行脚本,可能无法找到存储库。将它添加到帐户的crontab,而不是root。Cron在登录shell以外的其他环境中运行,因此可能的错误是git不在路径中。最简单的方法通常是在crontab(/usr/bin/git或安装git的任何地方)中使用每个命令的完整路径
cron运行的脚本中的错误通常通过邮件发送给用户,因此请尝试查看root的邮箱。我也尝试使用命令/在cron作业中使用etc/wordpress.sh
,但这没有任何不同。它没有抛出任何错误。。。但我需要将对git
的引用更改为/usr/bin/git/git
,以使其正常工作。我还必须将cron命令从/etc/wordpress.sh
更改为sh/etc/wordpress.sh
,以使事情正常进行。谢谢你的帮助!当我写这篇文章时,我对系统的唯一帐户是root
。告诉我不要以root
身份运行通常是个好主意,但这根本无助于解决问题。
Feb 4 07:00:01 ---- crond[27745]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 07:01:01 ---- crond[27773]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 08:00:01 ---- crond[29095]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 08:01:01 ---- crond[29142]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 09:00:01 ---- crond[29708]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 09:01:01 ---- crond[29718]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 10:00:01 ---- crond[30328]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 10:01:01 ---- crond[30337]: (root) CMD (run-parts /etc/cron.hourly)