我想使用cron job每45天发送一封电子邮件。从那以后,我已经制作了php
电子邮件脚本。所以我想每45天执行一次。你可以帮帮我吗?
答案 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)
答案 4 :(得分:-2)
有一种方式可以说“每45天一次”,而是必须指定您希望运行该工作的具体日期。也许你可能希望在45天内完成这项工作。
第三个字段是月份。如果在此字段中指定*,则每隔45天运行一次。
0 0 * / 45 * * /home/ramesh/backup.sh
尝试这个