一台Linux服务器上部署了一个网站的程序代码,通过svn checkout到htdocs下的网站目录中。
为了能自动更新代码的变更,写了一个shell脚本svn_update.sh并将其添加到cron中每隔5分钟更新一次网站代码。
[svn_update.sh]文件如下:
/usr/bin/svn update --username myusername --password mypass /usr/local/apache/htdocs/mysite
并通过crontab -e修改cron:
*/5 * * * * /usr/local/apache/htdocs/mysite/svn_update.sh &
结果:cron自动成功运行,每隔5分钟执行一次svn_update.sh脚本(可以通过tail -f /var/log/cron查看到cron的运行日志),
但奇怪的是mysite下的程序代码并有更新,直接在shell命令行下手动执行svn_update.sh成功更新网站程序文件。
解决:开始认为是权限问题,但后来把svn_update.sh /usr/bin/svn都置成了777权限还是不行,经过几经周折终于找到解决办法,
在svn_update.sh中首行增加
. /etc/profile
. ~/.bash_profile
两行命令,大功告成。
如此可见使环境变量的问题。呵呵。。。。。。