Почему эти правила crontab не работают?

Я пытаюсь создать отчет каждый последний день месяца с помощью crontab.

Вот мои правила:

45 20 31 1,3,5,7,8,10,12 * php console make:export > /dev/null 2>&1
45 20 30 4,6,9,11 * php console make:export > /dev/null 2>&1
45 20 28 2 * php console make:export > /dev/null 2>&1
*/2 * * * * php ..cronjobs/cron_photos_tri.php >/dev/null 2>&1

Но, хотя все остальные строки в одном и том же файле работают нормально, они никогда не запускаются. Вот системные журналы за последний день 07/2018:

Jul 31 20:40:01 CRON[19453]: (root) CMD (php ...cronjobs/cron_photos_tri.php >/dev/null 2>&1)
Jul 31 20:42:01 CRON[19880]: (root) CMD (php ...cronjobs/cron_photos_tri.php >/dev/null 2>&1)
Jul 31 20:44:01 CRON[20248]: (root) CMD (php ...cronjobs/cron_photos_tri.php >/dev/null 2>&1)
Jul 31 20:46:01 CRON[20599]: (root) CMD (php ...cronjobs/cron_photos_tri.php >/dev/null 2>&1)

Как видите, cron_photos_tri.php запущен, но не make: export. Зачем ?

0

Решение

Вот что вам нужно в crontab для запуска команды в конце каждого месяца (11:59 вечера):

  59 23 28-31 * * root [ $(date +\%d -d tomorrow) = 01 ] && executioncode

Как сделать тест на сегодня (2018-08-01 23:59 вечера)

  59 22 01-03 * * root [ $(date +\%d -d tomorrow) = 02 ] && executioncode

Код будет выполнен на 2018-08-01 10:59 pm

ОБЪЯСНИТЕ КРОН:

root [ $(date +\%d -d tomorrow) = 01 ] означает, что если завтра равно 1, а текущий день находится между 28 и 31, то среднее значение означает последний день месяца

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]