2011-03-08 110 views
3

我創建了一個Yii命令,需要每個月運行一次。如果我去我的保護文件夾,並手動運行該命令:Yii和cron作業

protected/yiic ganadores

它工作正常。我曾嘗試以下命令行添加到etc/cron.hourlyetc/crontab沒有成功:

/usr/bin/php5 /var/www/path/to/project/protected/yiic ganadores(ETC/cron.hourly/ganadores)

0 0 1 * * root /usr/bin/php5 /var/www/path/to/project/protected/yiic ganadores (etc/crontab中)

如果我運行文件ganadores手動內部etc/cron.hourly,它也在工作。

我在這裏錯過了什麼?

編輯:終於搞定了。我在cron行中有一些額外的空間。二手標籤代替空格,並開始工作..

+0

你可以多說一點嗎?在cron應該運行時,你在系統日誌中看到什麼?你在什麼操作系統上? – vulcan 2011-03-10 05:21:13

回答

6

這是我跑我的Yii cron作業(根crontab文件):

45 23 * * * sudo -u www-data php /path/to/yii/app/protected/console.php mycommand 

基本上只是普通的crontab語法,但我運行控制檯。 php而不是yiic,並且我將用戶設置爲Apache(www-data),所以權限對我的腳本是正確的。我不知道你爲什麼不工作,但希望看着我會幫助你。 :)

+0

已經嘗試過,將用戶更改爲Apache並運行console.php而不是yiic。仍然沒有:( – 2011-03-09 09:37:05

+0

檢查yiic是否可執行[sudo chmod + x yiic] – 2012-12-24 12:22:56

+1

如果您使用Linux CENTOS 5.5,則應該在上次cron作業後添加一個空行! – HPM 2013-05-15 16:59:09