2011-08-03 5 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をrootとして試してみました。

これはアクセス権の問題ですか?もしそうなら、php(誰も実行していない)がそれ自身のcronを更新できないのはなぜですか?これをどうやって回避するのですか?

おかげ

答えて

2

はこれにあなたのインポート行を変更してみてください:stdoutに標準エラー出力をリダイレクトし、PHPは、任意のエラーメッセージのcronの唾をキャッチしてもらおう

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

+0

ありがとう、今私はエラーがあります:交換のuids:無効な引数 – psynnott

関連する問題