Подтвердить что ты не робот

Как настроить работу cron через PHP (не CPanel)?

Как настроить работу cron через PHP (не CPanel)?

4b9b3361

Ответ 1

В большинстве Linux-систем с crond установлено несколько каталогов, которые можно настроить с помощью:

/etc/cron.d/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
...

Идея здесь состоит в том, чтобы создать файл в одном из этих каталогов. Вам нужно будет установить правильные разрешения/права собственности на эти (или на один из этих) каталогов, чтобы пользователь, запускающий PHP script, мог писать ему (пользователь Apache, если это веб-сайт script, или любой пользователь CLI, если CLI используется).

Самое простое - создать пустой файл, назначить ему правильное разрешение/право собственности и добавить PHP/w370. добавить/изменить его.

В качестве примера:

$ touch /etc/cron.d/php-crons
$ chown www-data /etc/cron.d/php-crons

Затем в PHP:

$fp = fopen('/etc/cron.d/php-crons', 'a');
fwrite($fp, '* 23 * * * echo foobar'.PHP_EOL);
fclose($fp);

Ответ 2

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

php -f /path/to/your/runner.php

Сохраните свои задания, которые вы будете добавлять в cron вручную в таблице (или одной таблице для типа задачи), а затем попросите вашего бегуна пройти через таблицу каждую минуту/час/день/все и выполнить все те, которые должны быть выполнены в это время.

Ответ 4

Поиск файла crontab нелегко на общем хостинге, и нет уверенности, что cron снова прочтет этот файл, пока он уже запущен. На самом деле я лучший способ использовать команду corntab.

Если у вас нет доступа к оболочке, вы можете использовать, например, PHPShell. Попробуйте это.

  • Уплотните файл txt через FTP с заданиями в crontab fomat, например

    5 * * * * /some/file/to/run.sh > /dev/null

(не забудьте поставить новую строку в конце этой строки)

  • Войдите в свою PHPShell и запустите

    crontab uploded_filename.txt

  • Не забудьте изменить права доступа к файлам

    chmod 775 uploded_filename.txt

  • Проверьте свои задания cron, используя

    crontab -l

Приветствия

Ответ 5

Существует эмбарго на использование PHP для редактирования crontabs, который существует с 2004 года. Вам не разрешается делать это, если вы живете за пределами Соединенных Штатов, обратитесь в местное правительственное агентство.

Но если серьезно, вы всегда можете вызвать "crontab -" с системным вызовом. Если вам нужно сделать это для некоторых пользователей, кроме веб-сервера, вам понадобится магия ssh или sudo. Но все это кажется плохой идеей.