2014-02-08 153 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)