Я хотел реализовать два cronjob с различным временем выполнения. Одно задание cron предназначено для отправки электронной почты и второго задания cron для проверки подписки на мои приложения.
Я пишу один файл crontab и записываю два cronjob следующим образом:
2 * * * * path to mailCronjob mail.php
20 * * * * path to check my application subscriptions sub.php
Проблема в том, что первая cronjob работает нормально. Почта будет выдавать штраф, но вторая cronjob не работает. Я попытался запустить вторую работу вручную, ее тоже отлично работает.
Я использую команду для установки cronjob как:
crontab crontab_file
когда я даю команду crontab -l
она также показывает оба cronjob в командной строке.
Я хотел спросить, я что-то упустил здесь, или что мне делать, чтобы запустить эти cronjob.
ФАКТ: вы можете запускать столько заданий cron из одного файла crontab, сколько хотите.
ФАКТ: вы также можете запускать разные задания как разные пользователи, каждый со своим собственным файлом crontab.
ПРЕДЛОЖЕНИЕ:
1) Просто отлаживайте, что неправильно с вашей второй работой.
2) Это может быть путь, это могут быть разрешения; это более чем вероятная среда (среда для "cron" может отличаться от среды для одного и того же пользователя из командной строки).
PS:
Попробуйте это тоже:
Проверьте электронную почту владельца и посмотрите, был ли отправлен отчет об ошибке.
Если вам нужно быть определенным пользователем и изменить эту пользовательскую среду,
su - -c "/path/to/sub.php" SubScriptUser
Если ваш скрипт работает только из определенного каталога, используйте
cd /path/to/ && ./sub.php
Я никогда не делал 2 cronjobs в одном файле cron-tab, но вместо того, чтобы один cronjob выполнялся каждые 15 минут и запрашивал базу данных или просматривал конфигурационный файл, какие задачи должны выполняться, возможно, эта концепция поможет вам.
0 * * * * php script.php > /tmp/errors.log
выходные данные в файл журнала:0 * * * * php script.php > /tmp/errors.log