PHP генерирует crontab - PullRequest
       11

PHP генерирует crontab

2 голосов
/ 29 ноября 2009

Я хочу иметь веб-интерфейс, чтобы контролировать, когда вызывать скрипт PHP. В этом интерфейсе я хочу иметь возможность устанавливать определенное время или диапазоны, при которых будет вызываться скрипт. Эта информация будет храниться в БД. Когда я нажимаю «Сохранить», я хочу, чтобы он прочитал все запланированные времена из БД, затем отформатировал и записал в crontab для задания cron. Есть ли способ заставить PHP изменить файл crontab?

Ответы [ 3 ]

8 голосов
/ 29 ноября 2009

Я бы пошел для создания скрипта "cron_runner.php", который запускается каждую минуту, читает данные cron и запускает их соответственно. Такое чувство, что заново изобретаем колесо, но, по крайней мере, у вас нет проблем с правами доступа к файлам.

2 голосов
/ 29 ноября 2009

Это должно быть возможно, но вам нужен PHP, чтобы иметь необходимые права для доступа к crontab пользователя или для выполнения "crontab" из командной строки. В среде виртуального хостинга это в основном не так.

1 голос
/ 17 ноября 2011

На самом деле, вы можете управлять заданиями cron так же просто, как текстовые файлы. Вы должны быть осторожны, чтобы ничего не затормозить.

Демон cron сохраняет cronjobs для каждого пользователя, используя следующую структуру:

/var
   /spool
        /cron
            /crontabs
                /root
                /user1
                /user2
                ..
                /user5

Используя эту информацию, вы можете изменить текстовый файл, соответствующий пользователю, для которого вы хотите установить новый cron.

Помните, что изменение системных файлов может быть опасным, и вы должны быть очень осторожны. Вашему приложению также потребуются некоторые дополнительные привилегии для изменения этих файлов.

...