Как вызвать работу cron из php-скрипта?

Я хотел установить задание cron из файла сценария php. Я могу выполнить файл php с помощью функции shell_exec (). Но Im не в состоянии выполнить команды, связанные с работой cron. $output = shell_exec("crontab -l"); эта команда не работает. Мой cronjob находится под / usr / bin / crontab. Я установил предварительный вход файла в 777 и im выполнил эту команду с помощью root-доступа. до сих пор не повезло. Может кто-нибудь мне помочь?

Ваша команда «crontal -l» показывает только то, что запланировано для вашего пользователя в личном crontab. Он может возвращать пустую строку, в зависимости от вашего текущего личного crontab. Не смешивайте с файлом / etc / crontab, который является общесистемным crontab, для всех пользователей, доступным только для root.

Если ваша потребность – как я думаю, я понял – добавить работу в crontab из php-скрипта, возможно, вы просто захотите попробовать что-то вроде:

 $r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab'); 

Чтобы запланировать «my_cmd my_args», например, «пользователь», 6:30 утра каждый день. Этот PHP-скрипт должен быть запущен как root, поскольку только он может писать в / etc / crontab.

Осторожно: надеюсь, что ваш php-скрипт не запускается с веб-сайта, а в командной строке из среды с ограничением доступа, чтобы ограничить риски безопасности, особенно если вы сделаете что-то, чтобы начать с root. Такой сценарий – очень большая дыра в вашей системе. Подумайте об этом. Это мой совет.

Кстати, разрешения / usr / bin / crontab вернулись к:

-rwxr-sr-x 1 корень crontab 35040 19 déc. 2010 / usr / bin / crontab (пример из системы Debian).