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

Awa*_*wan 2 php linux svn shell crontab

我在登录服务器后使用以下步骤更新服务器上的代码:

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
Run Code Online (Sandbox Code Playgroud)

现在我用以下内容创建了update.sh文件/var/www/

cd /var/www/staging
rm -r app.old
mv app app.old
svn checkout https://example.com/projectname/trunk/app app
Run Code Online (Sandbox Code Playgroud)

并且我每隔5分钟跟随crontab条目运行:

*/5 * * * * /var/www/update.sh
Run Code Online (Sandbox Code Playgroud)

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

如何解决此问题也适用于cron作业.它与sudo -s其他相关吗?

谢谢

Ale*_*s G 5

我怀疑问题是该作业是从cron运行的,root而root用户没有签出权限.

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

svn checkout --username USER --password PASS ttps://example.com/projectname/trunk/app app
Run Code Online (Sandbox Code Playgroud)

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

*/5 * * * * /var/www/update.sh 2>&1| mail -s "Cron job execution" youremail@wherever.com
Run Code Online (Sandbox Code Playgroud)

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