Рейтинг:0

Как заставить Crontab запускать весь каталог файлов PHP?

флаг in

Я создал небольшую программу, которая будет генерировать php-файлы и помещать их в папку «/ crons», чтобы задания cron могли выполнять файлы. Эти файлы php будут генерироваться и называться динамически на основе пользовательского ввода. Поэтому мне было интересно, как я могу заставить Crontab выполнять ВСЕ скрипты php, которые находятся в этом каталоге «/ crons», одновременно. Это какое-то регулярное выражение (regEx) с подстановочным знаком для запуска всего каталога, как показано ниже (что-то похожее на него)?

*/1 * * * * php /var/www/mywebsite.com/path-to-my-awesome-php-scripts/crons/*

Что именно мне нужно будет сделать? Требуется ли для этого сценарий bash или shell? (У меня нет опыта работы с bash или shell). Спасибо.

Paul avatar
флаг cn
Это не работает?
Aaron Esteban avatar
флаг in
О, на самом деле я этого не пробовал, но принимает ли cron подстановочный знак regEx в конце каталога? Я дам ему попробовать. Просто интересно, должно ли это работать, а если нет, то похоже ли это?
Paul avatar
флаг cn
Вы можете видеть, что в `/etc/crontab` он начинается с `SHELL=/bin/sh`.
Aaron Esteban avatar
флаг in
Итак, я протестировал его, и, похоже, он запускает только 1 файл php вместо двух файлов php, которые у меня есть в каталоге. Возможно, cron может выбрать только первый файл.
Chris avatar
флаг it
Не имея опыта работы с bash или shell, я бы создал другой php-скрипт, который будет обрабатывать вашу логику с помощью `path-to-my-awesome-php-scripts/crons/*`, и вы просто вызовете его в cron job `*/1 * * * * php /var/[...]/path-to-my-awesome-php-scripts/cronjob.php`
Aaron Esteban avatar
флаг in
Верно, и у меня есть хотя бы этот Крис, такой как мастер-файл с включениями в него, но мне было интересно, есть ли уже простой способ сделать это с помощью команды crontab.
Paul avatar
флаг cn
Если была проблема с запуском других скриптов, должны ли быть ошибки?
Рейтинг:1
флаг jp

Когда вы бежите php *.php то интерпретатор PHP выполняет только первый файл. Вы можете проверить это вне хрон среда.

Ты можешь использовать ходовые части для запуска всех исполняемых файлов в определенном каталоге. Видеть справочная страница run-parts

Вам нужно будет сделать исполняемые файлы PHP с правильным #! заголовок и исполняемый бит. Твой кронтаб должно выглядеть

*/1 * * * * run-parts /var/www/mywebsite.com/path-to-my-awesome-php-scripts/crons
Aaron Esteban avatar
флаг in
Привет, Алекс, можешь показать мне пример того, как сделать правильные заголовки #! и исполняемый бит? Я никогда не видел этого раньше в php.Если вы можете показать мне быстрый пример с правильным синтаксисом того, на что вы ссылаетесь, я могу получить визуальные эффекты и написать их правильно с этого момента. Благодарю за ваш ответ.
флаг jp
@AaronEsteban, https://stackoverflow.com/questions/21731745/how-to-add-shebang-with-php-script-on-linux

Ответить или комментировать

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