2015-07-19 173 views
0

我想運行一些crontab任務,並不是所有的人都在執行。這是我的crontab -eCrontab沒有運行腳本到php

@hourly /root/scripts/update.sh 
@hourly /root/scripts/twitter/update.sh 

的第一個任務工作的確切內容,第二個沒有。兩者都有chmod 777

兩者之間唯一的區別是後者.SH有這個在它:

#! /bin/bash 
php -f updateTwitter.php 

所以我想知道是否有與crontab中調用腳本的問題,即然後調用PHP文件?

如果我手動運行腳本(./update.sh),它的工作原理。我檢查了crontab日誌,我可以看到正在執行的進程。

我正在運行CentOS6。

+0

看起來好像在文件的開頭缺少shebang「!/ bin/sh」。爲什麼不直接在crontab中執行php命令(你可能需要一個絕對路徑到php)? – MrTux

+0

我更新了我正在使用的shebang的問題,忘記添加它。我曾嘗試告訴crontab直接使用php並運行php文件,雖然同樣的事情發生--crontab記錄進程而不執行它。 – maffo

回答

0

的crontab

MAILTO:[email protected] 
@hourly cd /root/scripts/twitter; update.sh 

在update.sh

#!/bin/bash 
/usr/bin/php updateTwitter.php 

假設updateTwitter.php在/根/腳本/嘰嘰喳喳

+0

我更新了我的crontab,使其像你的一樣,我也更新了.sh以像你的。儘管如此,也是如此。我添加了'echo'開始>> log.txt到.sh文件以查看crontab是否甚至啓動了.sh文件。它不是,沒有日誌產生。所以它似乎甚至沒有嘗試啓動.sh文件。 – maffo

0

這似乎工作:

/usr/bin/php -f /root/scripts/twitter/update.php

我加入了PHP文件的完整路徑在.SH 我如果crontab從另一個位置運行的SH文件納悶,這意味着它無法找到一個本地文件update.php。通過指定路徑,我說的是運行這個版本,而不是可能在你運行的目錄中。