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
其他相关吗?
谢谢
我怀疑问题是该作业是从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)
然后,当作业执行时,任何错误都将通过电子邮件发送给您.至少你会看到出了什么问题.