可以通过下面的命令编辑 crontab 任务列表。

crontab [-u user] -e

crontab 是一个命令行工具,它的作用就是定期执行任务。macOS,BSD,Linux 等系统中都是内置的功能。

比如在 macOS 下,我想每周一早上 6 点执行一次命令,更新 homebrew 列表,可以:

先通过

crontab -e

打开 vim 编辑 crontab 列表。(如果你不会使用 vim,那么记住按 i 可以进入编辑模式,esc 退出编辑模式。命令模式下依次按:wq(3 个键,包括冒号)可以保存退出)

将下面的信息添加到 crontab 列表。

0 0 6 * * 1 /usr/local/bin/brew update

下面简单说一下 crontab 列表的格式。

* * * * * command
* - minute (0-59)
* - hour (0-23)
* - day of the month (1-31)
* - month (1-12)
* - day of the week (0-6, 0 is Sunday)
command - command to execute

老张说:

还有些比较特殊的用法,比如 */n, a-b 等等。

下面再详细说下。这次 crontab 列表如下表示 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

挺简单的,举几个例子就明白了:

每月每天 7 点的第 0 分钟执行一次 /bin/ls :

0 7 * * * /bin/ls

在 12 月内(12 月,不是 1-12 月), 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :

0/20 6-12 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 更新 homebrew 列表 :

0 17 * * 1-5 brew update

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”

20 0-23/2 * * * echo "haha"

支持我们

如果您喜欢这篇文章,您可以分享给您的朋友,分享到您的社交账号比如:

或者 点击这个链接 观看广告支持我【广告内容与我们无关,请不要轻易相信并打开弹出的广告】。
若您经济宽裕,更欢迎通过下面的方式小额赞助以支持我们的创作。