2011-08-03 32 views
2

我試圖使用存儲在/tmp/crontab.txt中的新crontab替換crontab。無法使用PHP編輯cron - 沒有錯誤

$output = ''; 
    $output .= "Existing Crontab contents:<br>"; 
    $output .= shell_exec('crontab -l'); 

    $output .= "<br>new contents:<br>"; 
    $output .= file_get_contents('/tmp/crontab.txt'); 

    $output .= "<br>Result of import:<br>"; 
    $output .= shell_exec('crontab /tmp/crontab.txt'); 
    $output .= shell_exec('crontab -l'); 
    echo $output; 

輸出是:

Existing Crontab contents: 
1 2 3 4 5 existing 
new contents: 
* * * * * echo 'test' 
Result of import: 
1 2 3 4 5 existing 

您可以查看導入不起作用並且不顯示錯誤。

Apache以'nobody'身份運行。我試過crontab -u nobody /tmp/crontab.txt作爲根,它的工作原理。

這是權限問題嗎?如果是這樣,爲什麼php(無人運行)無法更新它自己的cron?我如何解決這個問題?

感謝

回答

2

試着改變你的進口線這樣的:

$output .= shell_exec('crontab /tmp/crontab.txt 2>&1'); 

那將stderr重定向到標準輸出,讓PHP捕捉任何錯誤信息的cron的吐出。

+0

謝謝,現在我有一個錯誤:swapping uids:無效參數 – psynnott