如何设置在特定日期后停止的 cron 任务?
How can I set up a cron task that stops after a certain date?
我需要一些帮助来将 cron 作业设置为每 10 分钟 运行 并在下周一的 00:00:00 停止。
0 0 30 3 * /var/www/html/reports/Test.php
cron
本身没有这样的设施。但是您可以按照以下说明实现您的目标。我没有给出确切的命令 - 但这是可行的想法。
- 不要将您的 cron 作业放在 crontab 中。将它放在
/etc/cron.d
中,文件名如:/etc/cron.d/<your login name>-test-reports.php
。使用您的登录名作为脚本文件名的一部分可以减少文件名冲突的可能性。在脚本中放置时间规范和您想要 运行 的命令。这可能需要 root 权限,因为 /etc/cron.d 仅对 root 用户 rw
。
- 算出下周一是哪一天。比如说,如果是 2015 年 3 月 30 日,安排一个
at
脚本在您感兴趣的日期和时间从 /etc/cron.d 中删除您的 cron 文件。您还可以使用命令确定下周一的日期:date --date "next Monday"
以避免在 at
脚本中硬编码日期。
我需要一些帮助来将 cron 作业设置为每 10 分钟 运行 并在下周一的 00:00:00 停止。
0 0 30 3 * /var/www/html/reports/Test.php
cron
本身没有这样的设施。但是您可以按照以下说明实现您的目标。我没有给出确切的命令 - 但这是可行的想法。
- 不要将您的 cron 作业放在 crontab 中。将它放在
/etc/cron.d
中,文件名如:/etc/cron.d/<your login name>-test-reports.php
。使用您的登录名作为脚本文件名的一部分可以减少文件名冲突的可能性。在脚本中放置时间规范和您想要 运行 的命令。这可能需要 root 权限,因为 /etc/cron.d 仅对 root 用户rw
。 - 算出下周一是哪一天。比如说,如果是 2015 年 3 月 30 日,安排一个
at
脚本在您感兴趣的日期和时间从 /etc/cron.d 中删除您的 cron 文件。您还可以使用命令确定下周一的日期:date --date "next Monday"
以避免在at
脚本中硬编码日期。