Crontab с php exec - PullRequest
       32

Crontab с php exec

0 голосов
/ 22 октября 2018

Я пытаюсь сделать эту работу:

exec("crontab -u root -l", $crons, $return);

Но $crons возвращает пустой массив, даже если команда работает, и когда я запускаю sudo crontab -u root -l, она дает мне результат, похожий на этот:

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/1   * * * *   root     /usr/bin/php /var/www/console Test:Testing

Последняя строка, я думаю, важна ...

Почему я получаю пустой массив?

1 Ответ

0 голосов
/ 22 октября 2018

Я думаю, это потому, что пользователь php не имеет права использовать -u, и вы не можете использовать sudo в exec, потому что вы должны ввести пароль root

, вы можете отредактировать visudo и добавить

www-data ALL=NOPASSWD: /usr/bin/crontab

www-data - это пользователь, под которым работает php, и измените свой код на

exec("sudocrontab -u root -l", $crons, $return);

, но в этом случае все сценарии php будут иметьдоступ к root-пользователям crontab

enter image description here

...