如何每45天设置一次cron作业

时间:2012-01-02 09:12:01

标签: cron

我想使用cron job每45天发送一封电子邮件。从那以后,我已经制作了php
电子邮件脚本。所以我想每45天执行一次。你可以帮帮我吗?

5 个答案:

答案 0 :(得分:7)

该脚本可以每天运行并包装以检查模数为45的天数是否等于常数:

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

我假设41这样表达式今天将在2012-01-12评估为真。百分比'%'是crontab中的特殊字符,需要进行转义。

答案 1 :(得分: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
    }
?>

答案 2 :(得分:2)

可以通过为脚本安排2个cron作业来实现相同的功能

从1月1日至17日开始:

min(id)

答案 3 :(得分:-2)

你可以使用

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

这将每隔45天在00:00(午夜)运行任务。 资源: Cron jobs

答案 4 :(得分:-2)

有一种方式可以说“每45天一次”,而是必须指定您希望运行该工作的具体日期。也许你可能希望在45天内完成这项工作。

第三个字段是月份。如果在此字段中指定*,则每隔45天运行一次。

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

尝试这个