我试图编写一个cron作业,在30天后自动运行PHP文件。 PHP文件具有写权限777。
这是我的代码:
* * * */30 * php -f /var/www/virtual/my_domain_name.com/htdocs/./file.php > /dev/null 2>&1
但这不起作用,我没有错误。
当我尝试:
* * * * * php -f /var/www/virtual/my_domain_name.com/htdocs/./file.php > /dev/null 2>&1
该脚本有效,然后它每隔一秒执行一次文件。
有什么想法吗?
答案 0 :(得分:1)
将*/30
放在第4个字段中会导致作业仅在一年中的第30个月运行,而在此后的每30个月运行一次 - 即从不。
将*/30
放在第3个字段(每月的某一天)会导致它在每个月的第30天运行(如果有这样的话,则在每月的第60天,第90天,......日)运行事情)。考虑到其他领域的*
,它将在那一天每分钟运行一次 - 而且从未在二月份运行。我怀疑那就是你想要的。
如果你想让一个工作每个月运行一次,那很简单:
0 0 12 * * php ...
这将在每个月的第12天午夜开始工作。调整前两个字段以选择不同的时间,调整第三个字段以选择不同的一天。
没有语法可以每30天运行一次作业。如果这真的是你想要的,你可以安排工作每天运行一次:
0 0 * * * php ...
然后让作业本身确定当前日期是否是30的倍数。