Мне нужно установить crontab из php-скрипта. я знаю, что он может быть установлен
system("echo '* * * * * echo \"Hello world\"' >> cron.crontab"); system("crontab cron.crontab"); //cron.crontab is the file name of the crontab
Файл cron.crontab создается в корневом каталоге, но crontab работает не так, как ожидалось! когда я пытаюсь выполнить следующую команду, он говорит, что не установлен crontab!
crontab -l
Я думаю, что я чего-то не хватает. Я использую структуру yii. есть ли расширение для обработки cron в структуре yii? есть ли другой способ сделать это? Пожалуйста, помогите мне. Благодарю.
Вы используете crontab -l
как тот же пользователь, что и веб-сервер? В противном случае вы не увидите его кроны.
Apache, как правило, не сможет обманывать главный кронтаб. Тем не менее, у каждого пользователя есть и crontab, и вполне вероятно, что в вашем коде выше устанавливается crontab apache
(или crontab для любого пользователя, на котором работает ваш сайт).
Попробуйте crontab -u apache -l
или замените apache
любым пользователем, на котором работает ваш сайт, и посмотрите, есть ли установленные вами записи.
Обычно вы должны быть root, чтобы установить crontab, и это в отличие от того, что php работает как root, и в этом случае вам не повезло.
Редактировать: Не совсем не повезло. См. Ссылку в комментарии Себастьяна выше.