2012-01-02 2 views
3

Я хочу отправить электронное письмо каждые 45 дней, используя работу cron. Поскольку, я уже сделал php
скрипт для электронной почты. Поэтому я хочу выполнить его каждые 45 дней. Можете ли вы мне помочь?Как установить работу cron за каждые 45 дней

+0

Вы нашли решение? – jmreicha

ответ

4

Сценарий может работать ежедневно и завернутые, чтобы проверить, если количество дней по модулю 45 равен константе:

10 13 * * * test $((`date +\%s`/24/60/60\%45)) = 41 && your_script 

Я предположил, 41, так что выражение будет вычисляться истинной сегодня. Процент «%» является специальным символом в crontab, его нужно избегать.

2

От Crontab site

*  *  * * *  command to be executed 
-  -  - - - 
|  |  | | | 
|  |  | | +----- day of week (0 - 6) (Sunday=0) 
|  |  | +------- month (1 - 12) 
|  |  +--------- day of  month (1 - 31) 
|  +----------- hour (0 - 23) 
+------------- min (0 - 59) 

Существует на самом деле не что-нибудь здесь, что будет делать «через каждые 45 дней»

Я бы запустить скрипт один раз в день, и ваш чек скрипт, если он был 45 дней с момента последней отправки почты.

<?php 
    if($days_since_last_email >= 45) { 
     //your existing send mail script here 
    } 
?> 
+0

Я думаю, что ответ Сонго - это то, что вы ищете. – SMTF

+1

Нет, что ответ Санго неверен – Viren

0

вы можете использовать

0 0 */45 * * php path/to/your/php/script 

Это позволит запустить задачу в 00:00 (полночь) каждые 45 дней. источник: Cron jobs

+1

Это неправильный путь. –

+0

@SachinSawant, что с ним не так – AlanFoster

+7

Делимое число 45 не находится в диапазоне 1-31 в течение нескольких дней. –

-1

Существует способ сказать «каждые 45 дней», вместо этого вы должны указать, какие конкретные дни вы хотите запустить. Возможно, вы захотите запустить работу в 45 дней.

Третье поле предназначено для месяцев. Если вы укажете * в этом поле, оно будет выполняться каждые 45 дней.

0 0 */45 * * /home/ramesh/backup.sh

попробовать это один

+1

Это неправильно, потому что он запускается каждые 1 день месяца, когда он не нравится, как вы думаете, что он не падает 0-31 – Viren

2

же может быть реализована путем планирования 2 хрон рабочих мест для сценария

Начиная с 01- Jan-17:

0 0 1 1,4,7,10 * abc.sh 

0 0 15 2,5,8,11 * abc.sh 
+1

Следует отметить, что это не будет * точно * каждые 45 дней, каждые 45 дней, благодаря разному количеству дней в месяц. Тем не менее, если достаточно примерно каждые 45 дней, это хороший вариант. +1 – 8bittree

Смежные вопросы