如何更新代码使用svn与crontab?

login到服务器后,我正在使用以下步骤更新服务器上的代码:

sudo -s <wrote password here> cd /var/www/staging rm -r app.old mv app app.old svn checkout https://example.com/projectname/trunk/app app 

现在我在/var/www/具有以下内容的update.sh文件

 cd /var/www/staging rm -r app.old mv app app.old svn checkout https://example.com/projectname/trunk/app app 

我每隔5分钟就有以下crontab项目运行:

 */5 * * * * /var/www/update.sh 

问题:所以cron作业正在工作,但它只是删除app文件夹,而不是从svn仓库检出它。 但是当我手动运行bash /var/www/update.sh ,它在sudo -s之后工作正常。

如何解决这个cron工作以及。 它与sudo -s或其他什么有关?

谢谢

我怀疑问题是作业是从cron作为root运行,root用户没有权限结帐。

首先,我建议您在脚本中包含SVN使用的用户名/密码的详细信息:

 svn checkout --username USER --password PASS ttps://example.com/projectname/trunk/app app 

接下来,将你的crontab中的行改为:

 */5 * * * * /var/www/update.sh 2>&1| mail -s "Cron job execution" youremail@wherever.com 

然后,当工作执行时,任何错误将通过电子邮件发送给您。 至少你会看到出了什么问题。

如果您需要以不同的用户身份运行它,请将其安装在该用户的crontab上。 而不是试图在脚本中重述。