【发布时间】:2018-03-16 05:47:31
【问题描述】:
我想每 45 天使用 cron 作业发送一封电子邮件。因为,我已经做了 php
电子邮件脚本。所以我想每 45 天执行一次。你能帮我解决这个问题吗?
【问题讨论】:
-
您找到解决方案了吗?
标签: cron
我想每 45 天使用 cron 作业发送一封电子邮件。因为,我已经做了 php
电子邮件脚本。所以我想每 45 天执行一次。你能帮我解决这个问题吗?
【问题讨论】:
标签: cron
该脚本可以每天运行并包装以检查天数模 45 是否等于常数:
10 13 * * * test $(( `date +\%s`/24/60/60\%45 )) = 41 && your_script
我假设为 41,因此表达式将在 2012 年 1 月 12 日今天计算为真。百分比 '%' 是 crontab 中的特殊字符,需要转义。
【讨论】:
来自 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 个 cron 作业来实现
从 2017 年 1 月 1 日开始:
0 0 1 1,4,7,10 * abc.sh
0 0 15 2,5,8,11 * abc.sh
【讨论】:
有一种说法是“每 45 天”,但您必须指定要运行该作业的具体日期。可能您可能希望在 45 天内运行该作业。
第三个字段是月份。如果您在此字段中指定 *,它将每 45 天运行一次。
0 0 */45 * * /home/ramesh/backup.sh
试试这个
【讨论】:
【讨论】: