Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top