我需要执行一个 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