Я пытаюсь заменить crontab, используя новый crontab, хранящийся в /tmp/crontab.txt.
$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 работает как «никто». Я пробовал crontab -u nobody /tmp/crontab.txt
как root, и это работает.
Это проблема с разрешениями? Если так, почему php (работающий как никто) не может обновить свой собственный cron? Как мне обойти это?
Спасибо