Cron ie Настройка в Arch Linux - PullRequest
       5

Cron ie Настройка в Arch Linux

1 голос
/ 23 января 2020

Вот мой рабочий кронтаб на Debian, он запускается каждые 5 минут.

*/05 * * * * user /usr/bin/php /var/www/monitoring/cron/status.cron.php

Я могу выполнить скрипт status.cron.php в моем браузере или php cli, скрипт работает как намеревался.

Теперь я был вынужден запустить тот же скрипт в Arch Linux, дело в том, что Arch использует systemd / таймеры, и я к этому не привык, тогда я услышал о cronie и решил дать снимок, вот что я получил до сих пор:

cron ie был установлен и работает, см .:

● cronie.service - Periodic Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/cronie.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-23 00:40:31 +07; 1 months 1 days ago
 Main PID: 631 (crond)
    Tasks: 1 (limit: 4620)
   Memory: 5.4M
   CGroup: /system.slice/cronie.service
           └─631 /usr/bin/crond -n

Jan 24 00:41:01 user-pc CROND[31933]: (root) CMD (run-parts /etc/cron.minutely #Runs a cron job script every minute)

создал файл с именем monitoring в /etc/cron.d каталог здесь - файл:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
*/1 * * * * root run-parts /etc/cron.minutely #Runs a cron job script every minute
01 * * * * root run-parts /etc/cron.hourly #Runs a cron job script every hour
02 4 * * * root run-parts /etc/cron.daily #Runs a cron job script every day
22 4 * * 0 root run-parts /etc/cron.weekly #Runs a cron job script every week
42 4 1 * * root run-parts /etc/cron.monthly #Runs a cron job script every month

создал новый каталог с именем cron.minutely в /etc/, затем создал новый файл с именем monstatuscron в нем, вот файл:

#!/usr/bin/php
#*/01 * * * * user /usr/bin/php /var/www/monitoring/cron/status.cron.php
#/usr/bin/php /var/www/monitoring/cron/status.cron.php
/usr/bin/php /var/www/monitoring/cron/status.cron.php

Полагаю, этот файл должен быть скриптом, так как он говорит, что это Arch docs, но какой тип скрипта? сценарий оболочки с инструкцией для запуска моего php сценария? или что еще? Я прокомментировал две строки прямо под #!/usr/bin/php, потому что это не сработало. Я застрял в этой точке.

Я также запускаю команду journalctl -xb -u cronie, чтобы проверить, выполняется ли задание, и у меня есть много записей, подобных этой:

Jan 24 00:58:01 user-pc CROND[32175]: (root) CMD (run-parts /etc/cron.minutely #Runs a cron job script every minute)

Кажется, работать по назначению.

Цените любую помощь по этому вопросу.

1 Ответ

2 голосов
/ 23 января 2020

Шебанг должен быть не #!/usr/bin/php, а #!/usr/bin/env bash или #!/bin/bash. Это потому, что Bash является оболочкой по умолчанию для Arch Linux - и это сценарий оболочки, вызывающий сценарий PHP. Также убедитесь, что chmod +x cron.minutely/*.sh, чтобы он мог быть выполнен. Нет необходимости помещать сценарии PHP -CLI в /var/www, потому что они могут запускаться везде (там они могут в конечном итоге запускаться через PHP -SAPI и предоставлять конфиденциальную информацию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...