仅 7 天的 Cron 工作,而不是随后的数周

仅 7 天的 Cron 工作,而不是随后的数周

我需要执行一个 cronjob 来单独运行一次,持续 7 天。我已经尝试过这样的:

 0 0 * * 0-6  myscript.sh

自从我给出 0-6 以来,它每天运行一次,并且一周中的每一天都运行。

但我需要单独运行一项工作一周,而不是随后运行多天。我不想提及月份的日期,因为我需要它在不同的时间运行。

(或者)

在cron中使用特殊命令时间,我单独使用@daily选项

如何将作业设置为单独运行 7 天?

答案1

你不能用 来做到这一点cron。但是,您可以使用 来做到这一点at。看man at更多细节。以下是提交myscript.sh未来 7 天作业的示例脚本,在午夜运行:

for n in {1..7}
do
    echo 'myscript.sh' | at midnight + $n days
done

您可以通过以下方式列出已提交的作业atq

atq | sort -n
3       Tue Sep 20 00:00:00 2016 a roaima
4       Wed Sep 21 00:00:00 2016 a roaima
5       Thu Sep 22 00:00:00 2016 a roaima
6       Fri Sep 23 00:00:00 2016 a roaima
7       Sat Sep 24 00:00:00 2016 a roaima
8       Sun Sep 25 00:00:00 2016 a roaima
9       Mon Sep 26 00:00:00 2016 a roaima

每个作业将在指定的日期和时间精确运行一次,然后从队列中删除。

如果您需要在作业开始之前将其删除,该atrm命令将执行此操作。例如,

atrm 3

相关内容