如何在周日每周运行crontab作业


263

我试图弄清楚如何在每周的星期日运行crontab作业。我认为以下方法应该有效,但是我不确定我是否正确理解。以下正确吗?

5 8 * * 6

7
问题是关于“星期天”,但接受的答案是关于“星期六”。¿?
inigomedina

11
使用https://crontab.guru/网站创建任何cron表达式。
nbi

Answers:


481

这是crontab格式的说明。

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

因此,据此,您5 8 * * 0将在每个星期日8:05运行。


148
为了提高可读性,您可以sun, mon, tue, wed, thu, fri, or sat在一天中使用其中之一。这也使您不必在使用0还是7星期天之间进行选择。
2014年

193

要在星期天执行cron,可以使用以下任一方法:

5 8 * * 0
5 8 * * 7
5 8 * * Sun

5 8代表一天何时会发生的时间:8:05。

一般来说,如果你想在周日执行的东西,只要确保第5列含有的07Sun。您有6,所以它在星期六运行。

cronjobs的格式为:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed

您始终可以将crontab.guru用作编辑器来检查cron表达式。


14
只是为了帮助其他人避免我刚才犯的愚蠢错误,并确保将分钟设置为*以外的其他值,否则它将在该小时的每一分钟执行!
user2924019 '16

40

以下是crontab文件的格式。

{minute} {hour} {month-of-month} {month} {day-of-week} {user} {path-to-shell-script}

因此,要在每个周日的午夜运行(周日通常为0,在极少数情况下为7):

0 0 * * 0 root /path_to_command

1
投票提到如何指定每次运行的命令。(但是,通过“ crontab”命令进行编辑时,用户栏应省略。)
Joachim Wagner,

1
周日午夜是周一的0小时,即0 0 * * 1
Fred Loney


2

以易于理解的方式Cron作业表达Crontab Builder


1
恕我直言,这不是答案,因为它在此处未添加任何内容,也不以任何方式在此处回答问题。
Pankaj


0

10 * * *太阳

Position 1 for minutes, allowed values are 1-60
position 2 for hours, allowed values are 1-24
position 3 for day of month ,allowed values are 1-31
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 

2
恭喜您在StackOverflow上的第一个答案!请务必查看“ 答疑指南”。例如,答案通常应该具有一些现有答案中缺少的新信息。
doz10us

7
该程序将在周日的24小时运行,每小时的每小时10分钟运行一次。
詹斯·蒂默曼

0

@weekly对我来说更好! example,add the fellowing crontab -e ,it will work in every sunday 0:00 AM @weekly /root/fd/databasebackup/week.sh >> ~/test.txt


0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.