2014-02-08 155 views
9

如何在bash脚本中运行cron这里。我做了如下和错误的操作。我想知道如何在ubuntu中执行此操作。我现在用它来击中权限被bash.sh拒绝运行cron

bash.sh文件

#!/bin/bash 
cd /var/www/Controller 
/usr/bin/php post.php 

在crontab -e命令

* * * * * /home/samitha/bash.sh >> /home/samitha/log/cron.log 2>&1 

但现在我收到以下错误

/bin/sh: 1: /home/samitha/bash.sh: Permission denied 

我该如何解决它?我做错了什么?

+2

'使用chmod + X /家庭/ samitha/bash.sh' – devnull

+0

我没有that.but相同的结果 – underscore

+0

“的mkdir /家庭/ samitha /日志” 可能? –

回答

11

你可以尝试以下解决方案,以及:

chmod +x post.php 
chmod +x bash.sh 
echo "* * * * * /home/samitha/bash.sh >> /home/samitha/log/cron.log 2>&1" >> cronjob 

chmod +x cronjob 

/etc/init.d/crond start #redhat based servers like centos 
/etc/init.d/cron start #debian based servers like ubuntu 

crontab cronjob 
+0

bash:/etc/init.d/crond:没有这样的文件或目录 – underscore

+0

你的服务器是什么? Ubuntu的? – MLSC

+0

是的Ubuntu的:))) – underscore

1

执行该cron的用户(执行cron -e的用户)没有适当的权限来执行该脚本。即:脚本缺少执行标志,或者不可能达到它,因为它的一些祖先目录缺少执行标志。

1

问题可能是您的用户没有执行文件的权限。

首先,你设置的执行标志脚本

chmod +x /home/samitha/bash.sh 

那么你应该检查PHP文件的权限与

ls -lah /var/www/Controller 

如果没有你所在的用户组也不是你的用户名显示出来,你有以超级用户权限运行脚本或更改其权限。

首先的办法是把你的条目

sudo crontab -e 

或第二个是(我不推荐,因为每个人都将被允许通过调用你的网站来执行脚本)

chmod a+x /var/www/Controller/post.php 
0
  • 文件必须是可执行文件(@see CHMOD)
  • 所有的父目录必须具有执行标志(@see CHMOD)
  • 如果crontab中由不同的用户运行,即没有所有者,也许这个用户没有权利执行。 (@see CHOWN)